数组去重的方法

15 篇文章 0 订阅

方法1:双层for循环加push,添加到新数组

var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];

var num = [];

for (var i = 0; i < arra.length; i++) {

  for (var j = i + 1; j < arra.length; j++) {

    if (arra[i] === arra[j]) {

      j = ++i;

    }

  }

  num.push(arra[i]);

}

console.log(num);

方法2:数组的filter方法

var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];

let el = arra.filter((item, index) => arra.indexOf(item) === index);//过滤出来第一次出现的元素

console.log(el);

方法3:数组的forEach加indexOf

var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];

let indexArr = [];

arra.forEach((item) => {

  if (indexArr.indexOf(item) === -1) {//遍历出新数组中没有的元素并且添加进去

    indexArr.push(item);

  }

});

console.log(indexArr);

方法4:用Set方法去重

var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];

let el = new Set(arra);

console.log(el);

方法5:原始for循环加splice,此时数组长度减1

var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];

for (var i = 0; i < arra.length; i++) {

  for (var j = i + 1; j < arra.length; j++) {

    if (arra[i] === arra[j]) {

      arra.splice(j, 1);

      j--;

    }

  }

}

console.log(arra);

方法6:includes

var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];

var el = [];

for (var i = 0; i < arra.length; i++) {

  if (!el.includes(arra[i])) {

    el.push(arra[i]);

  }

}

console.log(el);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值