对于map和filter有时候傻傻分不清楚,不管jquery,只说js中的两个方法,map()和filter()都是对调用他们的数组进行遍历。
首先熟悉一下他们的使用方法:
arr.map(function (item,index,array){……})
arr.filter(function (item,index,array){……})
都是将函数写在方法的括号里,参数也一样
参数:
item:当前处理的元素;index:当前处理元素的索引;array:调用map方法的数组,也就是arr
下面是一个简单的例子:
————————————————
let arr=[2,4,1,5,3,1];
let res1=arr.map(function (item,index,array) {
// return array[index]; //用这种方法也可以获取到当前处理的元素
return item>1;
});
let res2=arr.filter(function (item,index,array) {
return item>1;
});
console.log(res1,res2);//[ true, true, false, true, true, false ] [ 2, 4, 5, 3 ]
区别:
可以看到,map的结果只是对当前元素调用函数后(x是否大于1)的结果。而filter 会将结果为true的数组存到新的数组里面。