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; });

猜你喜欢

转载自www.cnblogs.com/hzx-5/p/9434521.html