介绍了这么多关于filter的内容,大家有没有发现filter和map在为数组中的每个元素调用一次 callback 函数,都是js数组的操作方法,那么filter和map有什么区别呢?其实区别就是filter会把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素,且数组元素不会发生改变。
1、filter
用于把Array的某些元素过滤掉,然后返回剩下的元素。
filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
数组元素个数可能发生了改变,但是数组元素不会发生改变。
var arr = [1,2,3,4,5,6]; function checknum(num){ return num >= 5 ; } var narr = arr.filter(checknum); //结果:narr = [5,6]
2、map
按照原始数组元素顺序依次处理元素,返回一个新数组,数组中的元素为原始数组元素调用函数处理的后值。
数组元素个数不变,但是按照一定的条件转换,数组元素发生了变化。
let oldArr=[1,2]; let myMethod=function(item){ return item*2; }; let newArr=oldArr.map(myMethod); console.log(newArr.valueOf());//[2,4]
以上就是js中filter和map的区别,希望能帮助你理解区分哦~更多学习教程:js教程。