forEach與map的區別與用法


forEach與map的區別與用法

一、相同點:

1.都是循環遍歷數組中的每一項

2.每次執行匿名函數都支持三個參數,參數分別為item(當前每一項),index(索引值),arr(原數組)

3.匿名函數中的this都是指向window

4.只能遍歷數組

二、不同點

1.map()會分配內存空間存儲新數組並返回,forEach()不會返回數據。

2.forEach()允許callback更改原始數組的元素。map()返回新的數組。

1、forEach()

forEach()針對每一個元素執行提供的函數,對數據的操作會改變原數組。

var arr1 = [0,2,4,6,8];
var newArr1 = arr1.forEach(function(item,index,arr1){
  console.log(this);
  console.log(arr1);
   arr1[index] = item/2; 
},this);
console.log(arr1);
console.log(newArr1);

 

使用場景:並不打算改變數據的時候,而只是想用數據做一些事情 ,比如存入數據庫或則打印出來。

二、map

map()不會改變原數組的值,返回一個新數組,新數組中的值為原數組調用函數處理之后的值;

var arr = [0,2,4,6,8];
 var newArr = arr.map(function(item,index,arr){
            console.log(this);
            console.log(arr);
            return item/2;
 },this);
 console.log(newArr);

 

使用場景:map()適用於你要改變數據值的時候。不僅僅在於它更快,而且返回一個新的數組。

 

 

 

 

參考鏈接:https://www.jianshu.com/p/6146bf9c614d


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM