js es6 中如何比較深刻的理解 for for of map?

時間 2021-06-09 13:04:33

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版 我覺得你看了那個,以後其他農村題材作品都...

有沒有什麼比較深刻的毒雞湯,讓自己在考研的時候更冷靜?

慢叔叔 考研成功,真的不代表什麼。我很多同學都沒有考研,照樣過的很好。許多人考研是漫無目的的考研,就是考著玩兒,瞎考,看著別人考自己也考。考完畢業才發現,自己和本科沒有任何技能上的差別。技能,技術,你所能提供的社會價值,才是你找工作的關鍵。就算你上博士,也是你的研究本領,這也是技能之一。而不是那個學...