filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。
和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身, 实例如下:
js:
return {
arr1: [],
arr:["apple","banner","pear","banner","aaa"]
}
number(){
this.arr1 = this.arr.filter((item,index,self)=>{
return self.indexOf(item) === index
})
return this.arr1 //函数的返回值一定要return出来
}
mounted() {
console.log(this.number()) ["apple","banner","pear","aaa"]
}
去除重复元素依靠的是indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了。
网友评论