JS数组去重

ES6的新方法实现数组去重

ES6里新添加了两个很好用的东西,
set和Array.from。

set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目。
在这里插入图片描述
在这我们可以看见,重复的项目已经被去掉了,
但是这里大家可以看到,set返回的是一个对象,但是我们想要的是数组啊。

Array.from,它的作用,就是可以把类数组对象、可迭代对象转化为数组。

在这里插入图片描述

JQ去重

var arr = ["1","2","3","4","5","4","3"];
var uniqueArr = [];
$.each(arr, function(i, el){
    if($.inArray(el, uniqueArr) === -1) uniqueArr.push(el);
});

遍历数组,建立新数组,利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组

function removeDuplicatedItem(ar) {
      var ret = [];
      for (var i = 0, j = ar.length; i < j; i++) {
          if (ret.indexOf(ar[i]) === -1) {
              ret.push(ar[i]);
          }
      }
  
     return ret;
 }

数组下标判断法, 遍历数组,利用indexOf判断元素的值是否与当前索引相等,如相等则加入

function removeDuplicatedItem3(ar) {
var ret = [];

ar.forEach(function(e, i, ar) {
    if (ar.indexOf(e) === i) {
        ret.push(e);
    }
});

return ret;

}

数组先排序, 然后比较俩数组一头一尾进行去重

function removeDuplicatedItem4(ar) {
    var ret = [],
        end;
    ar.sort();
    end = ar[0];
    ret.push(ar[0]);

for (var i = 1; i < ar.length; i++) {
    if (ar[i] != end) {
        ret.push(ar[i]);
        end = ar[i];
    }
}

return ret;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值