js - filter的使用

  过滤掉数组中相同的元素的方法有很多种,我们平常大多时候可能会使用for循环、foreach循环的,总之就是使用循环的方式来过滤元素,我们会发现使用循环的方式过滤数组有点复杂,而且还会消耗性能挺大的,下面我来介绍一下使用filter的方式来过滤相同的元素,提高性能。

filter() 方法是对数组的操作,将数组中的某些元素过滤掉返回剩下的元素。filter()方法有三个参数,分别是:

  • currentValue 指当前元素
  • index 指当前元素的索引值
  • self 指当前操作的数组
1、使用filter过滤掉数组中相同的元素

例子:

 var arr3 = [1, 2, 4, 2, 1, 6, 9, 12, 13, 15, 10, 1, 5, 6, 9, 10, 15];
    var r3 = arr3.filter(function (currentValue,index,self) {
        return self.indexOf(currentValue) === index;
    });
  console.log(r3); // [1, 2, 4, 6, 9, 12, 13, 15, 10, 5]

小知识点:数组arr结合indexOf以及当前元素是可以得到对应当前元素的索引值

var arr4 = [21,31,10,10,23,5,412,21,3,15,26,14];
console.log(arr4.indexOf(412)); //6
2、使用filter过滤掉数组中的某个元素

例子(过滤掉数组中的偶数):

var arr = [1, 2,16, 10, 12, 4, 5, 6, 9, 10, 15];
var r = arr.filter(function (value) {
    return value % 2 !== 0;
});
console.log(r);	 // [1, 5, 9, 15]
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值