map 返回其原始陣列的新陣列,但是 foreach 卻沒有。但是它們都確保了原始物件的不變性。
[1,
2,3]
.map
(d =
> d +1)
;// [2, 3, 4]; [1
,2,3
].foreach
(d =
> d +1)
;// undefined;
如果更改陣列內的值,foreach 不能確保陣列的不變性。這個方法只有在你不接觸裡面的任何值時,才能保證不變性。
[,]
.foreach
((obj)
=> obj.a +=1
);// [, ]
// 陣列已更改
何時使用map()和foreach()?
由於它們之間的主要區別在於是否有返回值,所以你會希望使用 map 來製作乙個新的陣列,而使用 foreach 只是為了對映到陣列上。
在建立乙個新的陣列時使用map,當你不需要製作乙個新的陣列,而是要對資料做一些事情時,就使用foreach
map 和forEach 的區別
對陣列進行迴圈,相當於直接for迴圈,沒有返回值,不能對它進行加工,只是單純的迴圈顯示return無效 item值,index索引,arr該陣列 一般沒用 arr.foreach item,index,arr 對陣列的每一項進行加工,加工完成之後返回乙個新的陣列 注意 map 不會對空陣列進行檢測。...
forEach和map的區別
foreach var arr 0 2,4 6,8 var newarr arr.foreach function item,index,arr console.log arr 0,2,4,6,8 arr index item 2 1.對資料的操作會改變原陣列 console.log arr 0,1...
forEach 和map 的區別和理解
相同點 1,都是迴圈遍歷陣列中的每一項 2,每次執行匿名函式都支援三個引數,引數分別為item 當前的每一項 index 索引值 arr 原陣列 3,匿名函式中的this都是指向window 4,只能遍歷陣列 不同點 1,map會分配記憶體空間儲存新陣列並返回,foreach不會返回陣列 2,for...