数组去重的几种方法。es5常规写法.es6使用set和使用...运算符

本文介绍了三种数组去重的方法:使用冒泡法逐一比较并删除重复元素;利用ES5的forEach结合对象属性检查;以及ES6的Set数据结构配合Array.from或扩展运算符实现高效去重。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数组去重我们想的的就是冒泡法。每一个都和后面的相比较。相同就去掉不同继续。

var array1 = [1, 1, 1, 2, 3, 2, 4];
for(var i=0;i<array1.length;i++) {
  for(j=i+1;j<array1.length;j++){
    if(array1[i]==array1[j]){
      array1.splice(i,1);
      i--;//删除一个以后,这个i之后的所有下标都减去了1.
   }
  }
}
console.log(array1);

结果是 

 

2、如果使用forEach也可以.这个es5的写法

var array1 = [1, 1, 1, 2, 3, 2, 4];
var tmpObj = {};
var result = [];
array1.forEach(function(a) {
  var key = (typeof a) + a;
  if (!tmpObj[key]) {
    tmpObj[key] = true;
    result.push(a);
  }
});
console.log(result)

 

3.使用es6的set 和Array.from结合起来就能实现

es6使用Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数

let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
 let set = new Set(array);
 console.log(set)

得到的是一个对象。然后使用Array.from,可以把类似数组的对象转换为数组,

 let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
 let set = new Set(array);
 let newArray=Array.from(set)
 console.log(newArray);

最后的结果是数组啦。 

 

还可以使用...像这样的运算符来写

let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];

var a=[...new Set(array)];

console.log(a);

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值