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

Posted Booo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生JS forEach()和map()遍历,jQuery$.each()和$.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()遍历的主要内容,如果未能解决你的问题,请参考以下文章

原生JS forEach()和map()遍历的区别以及兼容写法

js数组中foEach和map的用法详解 jq中的$.each和$.map

forEach与map

温习js中的for,forEach,map, some, every用法总结,跳出循环方法

jquery foreach和each的区别

js数组遍历的常用的几种方法以及差异和性能优化