JS数组去重的三种常用方法

本文介绍了三种常见的JavaScript数组去重方法:使用ES6的Set数据结构、for循环结合splice方法以及利用indexOf函数。每种方法都有详细的代码示例,帮助初学者掌握不同场景下的数组去重技巧。

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

  数组去重是JS初学者前期会遇到的一个问题,数组去重有许多种方法,这里总结出了最常用的几种。

一、使用ES6新增数据结构 Set

  ES6 提供了新的数据结构 SetSet 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。我们可以利用这一唯一特性进行数组的去重工作。

//方式一
let arr = [1,1,2,2,'a','a'];
let set = new Set(arr);
console.log(set) //{1, 2, "a"};

//方式二
let set = new Set([1,1,2,2,'a','a']);
console.log(set); //{1, 2, "a"}

//方式三 多个数组合并去重
let arr1 = [1, 2, 3, 4];
let arr2 = [2, 3, 4, 5, 6];
let set = new Set([...arr1, ...arr2]);
console.log(set);//{1, 2, 3, 4, 5, …}

  Set 语法
  new Set([iterable]);
  参数iterable
  如果传递一个可迭代对象,它的所有元素将不重复地被添加到新的 Set中。如果不指定此参数或其值为null,则新的 Set为空。
  需要注意的是Set返回的是一个新的Set对象。

二、for循环嵌套,splice删除重复内容

  第一层for循环遍历数组,第二层for循环取到第一层循环取得内容之后的内容,然后使用if逐个比较。遇到重复内容时利用splice()方法可以删除指定位置内容的特性将其删除。删除后因为后面的数组会填补这个空缺,所以我们在删除时在让第二层循环自减一次,这样可以在删除后不跳过后补上去的内容。

let arr = [1,1,2,2,'a','a'];
for(let i = 0;i < arr.length;i++){
    for(let j = i + 1;j < arr.length;j++){
        if(arr[i]==arr[j]){
            arr.splice(j,1);
            j--;
         }
    }
}
console.log(arr);// [1, 2, "a"]

三、利用indexOf去重

  新建一个空的数组用于接收不重复的原数组内容,通过for循环遍历原数组,使用indexOf判断结果数组中是否存在当前元素,如果没有相同的内容则push进结果数组,有相同的值则不执行任何操作继续判断下一个内容。

var arr = [1,1,2,2,'a','a'];
var arr1 = [];
for (var i=0;i<arr.length;i++){
    if(arr1.indexOf(arr[i]) == -1){
        arr1.push(arr[i])
    };
};
console.log(arr1);//[1, 2, "a"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值