JS数组去重方法

filter,它用于把Array的某些元素过滤掉,然后返回剩下的元素。

map()类似,Arrayfilter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。

var r,
    arr = [1,2,3,4,5,1,2,3,4,5];
r = arr.filter(function (element, index, self) {
    return self.indexOf(element) === index;
});
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。再出现,索引不等删除

 

回调函数

filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身:

var arr = ['A', 'B', 'C'];
var r = arr.filter(function (element, index, self) {
    console.log(element); // 依次打印'A', 'B', 'C'
    console.log(index); // 依次打印0, 1, 2
    console.log(self); // self就是变量arr
    return true;
});
posted @ 2018-08-07 06:47  LaLaLa_heng  阅读(106)  评论(0编辑  收藏  举报