第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery映射與每個

jQuery映射與每個

守著一只汪 2019-11-05 10:17:37
在jQuery中,map和each函數(shù)似乎做同樣的事情。兩者之間是否有實際區(qū)別?您什么時候選擇使用一種而不是另一種?
查看完整描述

3 回答

?
撒科打諢

TA貢獻1934條經(jīng)驗 獲得超2個贊

該each方法原本是一個不變的迭代器,map可以用作迭代器,但實際上是要操縱提供的數(shù)組并返回一個新數(shù)組。


另一個要注意的重要事項是,該each函數(shù)返回原始數(shù)組,而該map函數(shù)返回一個新數(shù)組。如果您過度使用map函數(shù)的返回值,則可能會浪費大量內(nèi)存。


例如:


var items = [1,2,3,4];


$.each(items, function() {

  alert('this is ' + this);

});


var newItems = $.map(items, function(i) {

  return i + 1;

});

// newItems is [2,3,4,5]

您還可以使用map函數(shù)從數(shù)組中刪除項目。例如:


var items = [0,1,2,3,4,5,6,7,8,9];


var itemsLessThanEqualFive = $.map(items, function(i) {

  // removes all items > 5

  if (i > 5) 

    return null;

  return i;

});

// itemsLessThanEqualFive = [0,1,2,3,4,5]

您還將注意到,this該map函數(shù)未映射。您將必須在回調(diào)中提供第一個參數(shù)(例如,我們在i上面使用的)。具有諷刺意味的是,每個方法中使用的回調(diào)參數(shù)與map函數(shù)中的回調(diào)參數(shù)相反,因此請小心。


map(arr, function(elem, index) {});

// versus 

each(arr, function(index, elem) {});


查看完整回答
反對 回復 2019-11-05
?
郎朗坤

TA貢獻1921條經(jīng)驗 獲得超9個贊

1:回調(diào)函數(shù)的參數(shù)相反。


.each()的,$.each()'s和.map()的回調(diào)函數(shù)走索引第一,然后將元件


function (index, element) 

$.map()的回調(diào)具有相同的參數(shù),但取反


function (element, index)

2: ,.each(),$.each()和.map()做一些特別的東西用this


each()以this指向當前元素的方式調(diào)用函數(shù)。在大多數(shù)情況下,您甚至不需要在回調(diào)函數(shù)中使用兩個參數(shù)。


function shout() { alert(this + '!') }


result = $.each(['lions', 'tigers', 'bears'], shout)


// result == ['lions', 'tigers', 'bears']

對于$.map()該this變量是指在全局窗口對象。


3:map()對回調(diào)的返回值做一些特殊的事情


map()調(diào)用每個元素上的函數(shù),并將結(jié)果存儲在新數(shù)組中,并返回該數(shù)組。通常,您只需要在回調(diào)函數(shù)中使用第一個參數(shù)。


function shout(el) { return el + '!' }


result = $.map(['lions', 'tigers', 'bears'], shout)


// result == ['lions!', 'tigers!', 'bears!']


查看完整回答
反對 回復 2019-11-05
?
慕蓋茨4494581

TA貢獻1850條經(jīng)驗 獲得超11個贊

的each一個數(shù)組函數(shù)迭代,調(diào)用提供的函數(shù)每一次元件,和設(shè)置this于所述有源元件。這個:


function countdown() {

    alert(this + "..");

}


$([5, 4, 3, 2, 1]).each(countdown);

會提醒5..,然后4..再3..然后2..再1..


另一方面,Map接受一個數(shù)組,并返回一個新數(shù)組,其中每個元素均由函數(shù)更改。這個:


function squared() {

    return this * this;

}


var s = $([5, 4, 3, 2, 1]).map(squared);

會導致s被[25, 16, 9, 4, 1]。


查看完整回答
反對 回復 2019-11-05
  • 3 回答
  • 0 關(guān)注
  • 644 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號