數組遍歷方法forEach 和 map 的區別


forEach()和map()都是遍歷數組的方法,用法類似,但是還是有很大區別:

  相同點:

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

      2.在遍歷中執行匿名函數都可以接收三個參數,分別為:遍歷過程的每一項、遍歷序號(索引值)、原數組;

      3.執行的匿名函數中 的this都指向window。

  不同點:

      map():

      根據遍歷執行的匿名函數,對於原數組中的每個值產生一個對應的值,並返回一個新的數組,存在一個映射關系,並且不會改變原數組,不會對空數組進行檢測。

                  

var arr = [0,1,2,3,4];
var str = arr.map(function(i,index,arr){
    console.log(this);
    return ++i;
},this);
console.log(str);  //結果為 [1,2,3,4,5]

 

      forEach():只是按照順序把數組中的元素傳遞給forEach中的匿名函數使用,對於空數組則不會調用到匿名函數。

var arr = [0,1,2,3,4];
var sum = 0;
var str = arr.forEach(function(i,index,arr){
    sum += i;
    console.log("sum的值為:",sum); 
})   //執行5次,最終結果 10

 


免責聲明!

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



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