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
