forEach和map的區別

2021-10-23 10:43:48 字數 1033 閱讀 2459

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