forEach 和map 的區別和理解

2021-10-09 13:55:02 字數 826 閱讀 7808

相同點:

1, 都是迴圈遍歷陣列中的每一項

2, 每次執行匿名函式都支援三個引數,引數分別為item(當前的每一項),index(索引值),arr(原陣列),

3, 匿名函式中的this都是指向window

4, 只能遍歷陣列

不同點

1, map會分配記憶體空間儲存新陣列並返回,foreach不會返回陣列

2, foreach允許callback更改原始陣列的元素,map返回新的陣列

1, foreach針對每個元素執行提供的函式,對陣列的操作會改變原陣列

2,

var arr1 = [0,2,4,6,8];

var newarr1 = arr1.foreach(function(item,index,arr1),this);

console.log(arr1);

console.log(newarr1);

使用場景:並不打算改變資料的時候,而只是想用資料做一些事情,比如存入資料庫或者列印出來;

map

map不會改變原陣列的值,返回乙個新陣列,新陣列的值為原陣列呼叫函式處理之後的值

var arr = [0,2,4,6,8];

var newarr = arr.map(function(item,index,arr),this);

console.log(newarr);

使用場景:map更適用於要改變資料值的時候,不僅僅在於它更快,而是返回乙個新的陣列

map 和forEach 的區別

對陣列進行迴圈,相當於直接for迴圈,沒有返回值,不能對它進行加工,只是單純的迴圈顯示return無效 item值,index索引,arr該陣列 一般沒用 arr.foreach item,index,arr 對陣列的每一項進行加工,加工完成之後返回乙個新的陣列 注意 map 不會對空陣列進行檢測。...

map和forEach的區別

map 返回其原始陣列的新陣列,但是 foreach 卻沒有。但是它們都確保了原始物件的不變性。1,2,3 map d d 1 2,3,4 1 2,3 foreach d d 1 undefined 如果更改陣列內的值,foreach 不能確保陣列的不變性。這個方法只有在你不接觸裡面的任何值時,才能...

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