1樓:bulemoon
鑑於上面,感覺我的問題沒描述清楚:是這樣,自己一直很困惑怎麼使用map和for,想知道怎麼才能靈活的運用它們才實現一些遍歷模式:
比如最常見的列表返回資料,需要處理裡面的性別和狀態這種:
leta=[
32,33,
16,40];
letresult=a
.filter
(function
(value
,index
,array));
console
.log
(result,a
);// [32,33,40] [32,33,16,40]
and:
let new_array = arr.map(function(currentValue, index, arr), thisArg)
and:
let a = ['1','2','3','4'];
let result = a.map(function (value, index, array) );
console.log(result, a34;1新陣列的新元素","2新陣列的新元素","3新陣列的新元素","4新陣列的新元素"] ["1","2","3","4"]
具體可參看這篇部落格:
js陣列零到壹
2樓:
首先,for 有三種語法形態
傳統的 for (let i = iv, i < ev, k++) {}形式 ,基本形式,沒啥好說。
遍歷鍵的 for ... in ...形式 ,可遍歷陣列索引或物件的鍵,尤其是遍歷陣列的時候,注意與其它語言區別(其它多數語言對應的是 for ...
of ... 形式)。
遍歷值的 for ... of ...形式 ,遍歷 iterable 物件,包括陣列。
關於這個,可以看我以前的一篇部落格:ES6 的 for..of 和 Generator,從偽陣列 jQuery 物件說起。
for 的三種形式,都還是語法層面的實現。但題主提到的 map 等,就是 Array的方法了,以函式式程式設計的形式定義的介面。一般對於資料集的處理, 有乙個模式叫 map-reduce 模式,其實還有常見的 filter 過程,但它可以用 reduce 代替。
這裡提到了三個關鍵過程,在 Array.prototype 裡也有相應的實現:
map,對映。它把陣列/列表等(以下統稱 iterable)中的每乙個元素通過同樣方式轉換成另一種元素,其形式就像對映表把鍵對映成值一樣,所以叫 map。這種形式,輸入和輸出元素個數是相等的。
filter,過濾。它會按一定的條件對原始資料進行篩選,得到乙個篩選後的結果。所以這個處理過程輸入和輸出的元素個數可能不等,但至少輸入和輸出都是 iterable。
reduce,歸約。它會按指定的處理過程讓 iterable 中的每個元素參與計算,並得至乙個最終的計算結果,比較常見的示例是累加。它的輸入是 iterable,但輸出可能是任意型別,具體取決於歸約演算法——如果歸約演算法是將元素逐個對映生產乙個新的 iterable 結果,那就是 map;如果演算法是將其中符合一定條件的結果篩選出來,產生乙個新的 iterable 結果,那就是 filter。
除此之外,用得比較多的還有 some 和 every 這兩個方法,分別用於檢查 iterable 中是否存在符合某個條件元素,和檢查是否所有元素都符合某個條件。當然 Array.prototype 中還提供了不少工具方法,可以在 Array.
prototype(MDN) 上去閱讀了解。
對於資料的處理,目前比較有名的庫是 Lodash,提供了大量的輪子,隨便用。
3樓:joker
陣列遍歷使用語義化的api
forEach,只需要遍歷的時候使用
map,需要返回乙個新陣列時使用
filter, 過濾陣列的元素時使用
reduce, 陣列的每個元素需要累加時使用遍歷物件時,我是使用 lodash 的 forEarch、map 之類的方法。原生js沒有優雅的遍歷物件的方法,lodash 的話使用起來跟陣列的方法使用是一致的,而且也支援遍歷陣列,並且有防空值處理。
有什麼夢是讓你印象比較深刻的?
乙隻耳 夢見在聽孟鶴堂周九良的相聲,非常真實。然後就拿著手機拍照,但是被工作人員制止了,然後我就有點不高興,工作人員後來問了一下負責人說可以拍。然後不知道為什麼相聲就停了,孟鶴堂和周九良也是一臉不高興的樣子,後來工作人員和我道歉了,看我表情說讓我不要哭,我說我沒有哭,就是有點生氣,然後周九良就開始鼓...
對農民形象刻畫比較深刻的影視劇作品有哪些值得推薦?
放啊放風箏 文學上來說的話,寫農民的典型代表有魯迅,趙樹理 三里灣 高曉聲 陳奐生上城 路遙 驚心動魄的一幕 後面的三部好像有拍成電影?剛好複習現當代文學看到的。趙樹理為農民之子,較為典型。 孟德爾 現在外國這種片一般都是古裝劇了,像 楢山節考 建議看83版 我覺得你看了那個,以後其他農村題材作品都...
有沒有什麼比較深刻的毒雞湯,讓自己在考研的時候更冷靜?
慢叔叔 考研成功,真的不代表什麼。我很多同學都沒有考研,照樣過的很好。許多人考研是漫無目的的考研,就是考著玩兒,瞎考,看著別人考自己也考。考完畢業才發現,自己和本科沒有任何技能上的差別。技能,技術,你所能提供的社會價值,才是你找工作的關鍵。就算你上博士,也是你的研究本領,這也是技能之一。而不是那個學...