数组去重是指从一个数组中删除重复的元素,使得每个元素只出现一次。实现数组去重的方法有很多种,下面列举几种常见的方法:

  1. 使用 Set 数据结构

Set 是 ES6 中新增的数据结构,它的特点是不能存储重复的元素,因此可以用来去重。具体实现如下:

let arr = [1, 2, 2, 3, 4, 4, 5];
let newArr = Array.from(new Set(arr));
console.log(newArr); // [1, 2, 3, 4, 5]
  1. 使用 indexOf 方法

通过遍历数组,将每个元素与该元素前面的所有元素比较,如果有重复的就删除。具体实现如下:

let arr = [1, 2, 2, 3, 4, 4, 5];
for (let i = 0; i < arr.length; i++) {
  for (let j = 0; j < i; j++) {
    if (arr[i] === arr[j]) {
      arr.splice(i, 1);
      i--;
      break;
    }
  }
}
console.log(arr); // [1, 2, 3, 4, 5]
  1. 使用 includes 方法

与 indexOf 方法类似,使用 includes 方法来判断数组中是否已经存在该元素,如果存在就删除。具体实现如下:

let arr = [1, 2, 2, 3, 4, 4, 5];
let newArr = [];
for (let i = 0; i < arr.length; i++) {
  if (!newArr.includes(arr[i])) {
    newArr.push(arr[i]);
  }
}
console.log(newArr); // [1, 2, 3, 4, 5]
  1. 使用 reduce 方法

使用 reduce 方法遍历数组,将每个元素与已经出现的元素比较,如果没有重复的就将该元素添加到新数组中。具体实现如下:

let arr = [1, 2, 2, 3, 4, 4, 5];
let newArr = arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);
console.log(newArr); // [1, 2, 3, 4, 5]

总的来说,使用 Set 数据结构是最简单、最快捷的去重方法。但是如果需要兼容低版本的浏览器或者需要自定义去重规则,可以选择其他方法。

JavaScript 数组去重方法详解及优化

原文地址: https://www.cveoy.top/t/topic/nVhc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录