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, 2, 3, 4]
// 2. 不會返回新陣列
console.
log(newarr)
;// undefined
map
var arr =[0
,2,4
,6,8
];var newarr = arr.
map(
function
(item, index, arr)
// console.log(arr); // [0, 2, 4, 6, 8]
return item /2;
})// 1. 不改變原陣列
console.
log(arr)
// [0, 2, 4, 6, 8]
// 2. 返回新陣列
console.
log(newarr)
;// [0, 1, 2, 3, 4]
總結:
foreach
map都只能遍歷陣列
都是迴圈遍歷陣列中的每一項
每次執行匿名函式都支援三個引數(item,index,arr)
匿名函式的this指向window
不會返回陣列
生成新陣列並返回
對資料的操作會改變原陣列
不改變原陣列
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 的區別和理解
相同點 1,都是迴圈遍歷陣列中的每一項 2,每次執行匿名函式都支援三個引數,引數分別為item 當前的每一項 index 索引值 arr 原陣列 3,匿名函式中的this都是指向window 4,只能遍歷陣列 不同點 1,map會分配記憶體空間儲存新陣列並返回,foreach不會返回陣列 2,for...