1. 程式人生 > >原生JS forEach()和map()遍歷,jQuery$.each()和$.map()遍歷

原生JS forEach()和map()遍歷,jQuery$.each()和$.map()遍歷

each ole this asc fin name param view map()

一、原生JS forEach()和map()遍歷

共同點:

1.都是循環遍歷數組中的每一項。
2.forEach() 和 map() 裏面每一次執行匿名函數都支持3個參數:數組中的當前項item,當前項的索引index,原始數組input。
3.匿名函數中的this都是指Window。
4.只能遍歷數組。

1.forEach()

沒有返回值,修改的是原數組。

var ary = [12,23,24,42,1];  
    var res = ary.forEach(function (item,index,input) {  
           input[index] = item*10;  
    })  
    console.log(res);//-->undefined;  
    console.log(ary);//-->[ 120, 230, 240, 420, 10 ];

2.map()

有返回值,可以return 出來。不修改原數組。

var ary = [12,23,24,42,1];  
var res = ary.map(function (item,index,input) {  
    return item*10;  
})  
console.log(res);//-->[120,230,240,420,10];  
console.log(ary);//-->[12,23,24,42,1]; 

二、jQuery .each().map()遍歷

共同點:

即可遍歷數組,又可遍歷對象。

1.$.each()

沒有返回值。$.each()裏面的匿名函數支持2個參數:當前項的索引i,數組中的當前項n。如果遍歷的是對象,k 是鍵,n 是值。

$.each( ["a","b","c"], function(i, n){  
  console.log( i + ": " + n );  
}); 
  // 0: a
  // 1: b
  // 2: c
 $.each( { name: "John", lang: "JS" }, function(k, n){  
        console.log( "Name: " + k + ", Value: " + n );  
    });  
     //Name: name, Value: John 
    // Name: lang, Value: JS

2.$.map()

有返回值,可以return 出來。.map()2

.each()裏的參數位置相反:數組中的當前項n,當前項的索引i。如果遍歷的是對象,i 是值,n 是鍵。如果是("span").map().each() ,$(“span”).each()一樣。

var arr=$.map( [0,1,2], function(n,i){  
         return n+i;
    });  
    console.log(arr); 
    //[ 0, 2, 4 ]

$.map({"name":"Jim","age":17},function(n,i){  
     console.log(n+":"+i);  
 }); 
    //Jim:name
    //17:age


原生JS forEach()和map()遍歷,jQuery$.each()和$.map()遍歷