那么我们在项目中,什么情况下使用map(),又在什么情况下使用filter()呢?在了解这个问题之前,我们需要知道的是他们区别在哪儿?
1、map()的使用方法:
arr.map((item,index,array)=>{……})
2、filter()的使用方法:
arr.filter((item,index,array)=>{……})
都是将函数写在方法的括号里,参数也一样,
行参的参数说明:
下面我们举一个例子:
let arr=[3,5,17,15,4,14];
let res1=arr.map((item,index,array)=>{
// return array[index]; //用这种方法也可以获取到当前处理的元素
return item>5;
});
console.log(res1)//[ false, false, true, true, false, true ]
map()方法返回的结果是:[ false, false, true, true, false, true ]
也就是说符合条件或者不符合条件的,都将boolean类型值返回给到新的数组
let arr=[3,5,17,15,4,14];
let res2=arr.filter((item,index,array)=>{
return item>5;
});
console.log(res2) //[ 17, 15, 14 ]
filter()方法返回的结果是:[ 17, 15, 14 ]
也就是说符合条件就会把值返回到新的数组中
可以看到,
map() 的结果只是对当前元素调用函数后,将符合条件boolean类型值返回给到新的数组
filter() 会将结果为true的数组值存到新的数组里面。