js和jquery中的遍歷對象和數組(forEach,map,each)


arr[].forEach(function(value,index,array){

  //do something

})

  • 參數:value數組中的當前項,index當前項的索引,array原始數組;
  • 數組中有幾項,那么傳遞進去的匿名回調函數就需要執行幾次;
  • 理論上這個方法是沒有返回值的,僅僅是遍歷數組中的每一項,不對原來數組進行修改;但是可以自己通過數組的索引來修改原來的數組;
 
 
var arr = [12,23,24,42,1];
var res = arr.forEach(function (item,index,input) {
     input[index] = item*10;
})
console.log(res);//-->undefined;
console.log(ary);//-->[120,230,240,420,10]; 通過數組索引改變了原數組
 

 

arr[].map(function(value,index,array){

  //do something

})

  • 參數:value數組中的當前項,index當前項的索引,array原始數組;
  • 區別:map的回調函數中支持return返回值;return的是啥,相當於把數組中的這一項變為啥(並不影響原來的數組,只是相當於把原數組克隆一份,把克隆的這一份的數組中的對應項改變了);
 

var arr = [12,23,24,42,1]; var res = arr.map(function (item,index,input) { return item*10; }) console.log(res);//-->[120,230,240,420,10]; 原數組拷貝了一份,並進行了修改 console.log(ary);//-->[12,23,24,42,1]; 原數組並未發生變化
 

 

$.each(arr, function(index,value){

  //do something

})

  • 參數:arr要遍歷的數組,index當前項的索引,value數組中的當前項
  • 第1個和第2個參數正好和以上兩個函數是相反的,注意不要記錯了

  

 
var arr = [12,23,24,42,1];
$.each(arr, function (index,item) {
console.log(index) // 0 1 2 3 4 console.log(item) // 12 23 24 42 1 })
 

 

 
         
參考:
  • http://www.jb51.net/article/81955.htm
  • http://www.cnblogs.com/jocyci/p/5508279.html
  


免責聲明!

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



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