过滤器也是一个常用的操作,它用于把数组的某些元素过滤掉,然后返回剩下的元素。
和地图()类似,数组的过滤器()也接收一个函数。和地图()不同的是,过滤器()把传入的函数依次作用于每个元素,然后根据返回值是真实的还是错误的决定保留还是丢弃该元素。
例如,在一个数组中,删掉偶数,只保留奇数,可以这么写:
var arr=[1、2、4、5、6、9、10、15); var r=加勒比海盗。过滤器(函数(x) { 返回x % 2 !==0; }); r;//(1、5、9、15)
把一个数组中的空字符串删掉,可以这么写:
var arr=(' A ',”,“B”, null,定义,' C ', ' '); var r=加勒比海盗。过滤器(函数(s) { 返回的年代,,s.trim ();//注意:IE9以下的版本没有修剪()方法 }); r;//[' A ', ' B ', ' C ']
可见用过滤器()这个高阶函数,关键在于正确实现一个“筛选“函数。
请尝试用过滤器()筛选出素数