js和jQuery的map方法遍历区别
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>map方法的区别</title>
<script src="js/jquery-1.12.4.js"></script>
<script>
var arr=[1,2,3,4,5];
var obj={1:2,3:4,5:6,7:8}
//利用原生js的map方法遍历
arr.map(function(value,index,array){
console.log(index,value,array);
});
obj.map(function(value,index,array){
console.log(index,value,array);
});
//利用jQuery的map方法遍历
$.map(arr,function(value,index){
console.log(index,value);
});
$.map(obj,function(value,index){
console.log(index,value);
});
</script>
</head>
<body>
</body>
</html>
js和jQuery的map()区别:
-
js:
- 和原生的forEach方法一样,不能遍历伪数组
- 第一个参数是value,第二个参数是index,第三个参数是array:当前被遍历的数组
-
jQuery:
- 和jQuery中的each静态方法一样,map的静态方法可以遍历伪数组
- 第一个参数是数组arr,第二个参数是function,function中的第一个参数是value,第二个参数是index
js和jQuery的map()写法:
-
js:
-
arr.map(function(value,index,array){
console.log(index,value,array);
});
-
jQuery:
jQuery中的each方法和map方法的区别:
-
each静态方法的默认的返回值就是遍历谁就返回谁
-
map静态方法默认的返回值是一个空数组
-
each静态方法不支持在回调函数中对遍历的数组进行处理
-
map静态方法可以在回调函数中通过return对遍历的数组进行处理,然后生成一个新的数组返回
var res=$.map(obj,function(value,index){
console.log(index,value);
return value+index;
});