js数组去重的5种方法

admin 34 0

# js数组去重的5种方法

在JavaScript中,我们经常需要处理数组,而数组中可能存在重复的元素,为了使数组更加简洁,我们通常需要去除重复的元素,以下是五种在JavaScript中去重数组的常用方法:

1. **使用Set**

JavaScript中的Set对象是一种数据结构,它只存储唯一值,我们可以利用这个特性来去重数组。

let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [...new Set(arr)];

2. **使用indexOf**

我们可以遍历数组,使用indexOf方法检查元素是否已经存在,如果存在,则不添加到新数组中。

let arr = [1, 2, 2, 3, 4, 4, 5];
let newArr = [];
for (let i = 0; i < arr.length; i++) {
  if (newArr.indexOf(arr[i]) === -1) {
    newArr.push(arr[i]);
  }
}

3. **使用filter**

filter方法可以创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,我们可以使用它来去重。

let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = arr.filter((value, index, self) => self.indexOf(value) === index);

4. **使用includes**

includes方法用于判断一个数组是否包含一个指定的值,根据返回值来确定位置,我们可以利用这个方法来去重。

let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
  if (!uniqueArr.includes(arr[i])) {
    uniqueArr.push(arr[i]);
  }
}

5. **使用findIndex**

findIndex方法返回数组中满足提供的测试函数的第一个元素的索引,否则返回-1,我们可以利用这个方法来去重。

let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
  if (uniqueArr.findIndex(value => value === arr[i]) === -1) {
    uniqueArr.push(arr[i]);
  }
}

以上就是五种在JavaScript中去重数组的方法,每种方法都有自己的特点,可以根据实际需求来选择合适的方法。