相同點:
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...