map和forEach的區別

2021-10-11 16:11:38 字數 574 閱讀 6591

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...