filter详解与实战
2019-10-25
filter(过滤,筛选) 方法创建一个新数组,原始数组不发生改变。
1 | array.filter(callback,[ thisObject]); |
其包含通过提供函数实现的测试的所有元素。接收的参数和 map 是一样的,filter的callback函数需要返回布尔值true或false. 如果为true则表示通过啦!如果为false则失败,其返回值是一个新数组,由通过测试为true的所有元素组成,如果没有任何数组元素通过测试,则返回空数组。
来个例子介绍下,现在有一个数组 [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4],我们想要生成一个新数组,这个数组要求没有重复的内容,即为去重。
不使用高阶函数
1 | const arr1 = [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4]; |
使用高阶函数
1 | const arr1 = [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4]; |
filter注意点说明
callback在过滤测试的时候,一定要是Boolean值吗?例子:
1 | var arr = [0, 1, 2, 3]; |
通过例子可以看出:过滤测试的返回值只要是弱等于== true/false就可以了,而非非得返回 === true/false.