数组去重方法总结

方法1:先排序后去重

 function removeRepeat1(array) {
    var newsArr = [],point;
    array.sort();
    point = array[0]; 
    newsArr.push(array[0]);
    for (var i = 1; i < array.length; i++) {
      if (array[i] != point) {
        newsArr.push(array[i]);
        point = array[i];
      }
    }
    return newsArr;
  }

方法2:利用forEach方法遍历数组并使用indexOf判断值的下标是否与当前索引相等

 function removeRepeat2(array) {
    var newsArr = [];
    array.forEach(function(value, i, array) {
      if (array.indexOf(value) === i) {
        newsArr.push(value);
      }
    });
    return newsArr;
  }

方法3:利用json对象保存数据的无序性,判断对象中是否已经存在数组值,若不存在利用object[item]=1去保存,从而实现去重

function removeRepeat3(array) {
    var obj = {},newsArr = [];
    for (var i = 0, j = array.length; i < j; i++) {
    	console.log(obj[array[i]]);
        if (!obj[array[i]]) {
            obj[array[i]] = 1;
            newsArr.push(array[i]);
        }
    }
    return newsArr;
}

方法4利用indexOf(undefined)===-1去重

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

方法5:ES6数去重,利用了Set()数据结构其成员的唯一性,再使用Array.from()方法转化为

removeRepeat5(array){
 return Array.from(new Set(array));
}

总结: 以上是本人所能想到以及使用过得数组去重方法,希望大家读到我的文章的道友们能给出更多的建议,如果有更好的方法请道友不吝赐教,谢谢!!!

微笑微笑微笑





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值