相同點:
1.都是循環遍歷數組中的每一項
2.每次執行匿名函數都支持三個參數,參數分別為item(當前每一項),index(索引值),arr(原數組)
3.匿名函數中的this都是指向window
4.只能遍歷數組
不同點:
map()
map方法返回一個新的數組,數組中的元素為原始數組調用函數處理后的值
也就是map()進行處理之后返回一個新的數組
⚠️注意:map()方法不會對空數組進行檢測
map方法不會改變原始數組
var arr = [0,2,4,6,8];
var str = arr.map(function(item,index,arr){
console.log(this); //Window
console.log(this);
console.log(item);
console.log('原數組arr:',arr); // 會執行五次
return item/2;},this);console.log(str); //[0,1,2,3,4]
forEach
forEach方法用於調用數組的每個元素,將元素傳給回調函數
⚠️注意: forEach對於空數組是不會調用回調函數的 ,
沒有返回一個新數組&沒有返回值
應用場景:為一些相同的元素,綁定事件處理器!
不可鏈式調用
var arr = [0,2,4,6,8]
var sum =0;
var str = arr.forEach(item,index.arr){sum+= item;console.log("sum的值為:",sum);})