📌  相关文章
📜  如何从 JavaScript 数组中删除重复元素?(1)

📅  最后修改于: 2023-12-03 14:51:45.497000             🧑  作者: Mango

如何从 JavaScript 数组中删除重复元素?

在 JavaScript 中,我们经常需要从数组中删除重复的元素。这在处理数据的时候非常常见,本文将介绍如何通过不同的方法从 JavaScript 数组中删除重复元素。

方法 1:使用 Set

Set 是一个 ES6 中的新数据类型,它类似于数组,但是它的元素都是唯一的。我们可以将一个数组转换为 Set,然后再将 Set 转换回数组来去除重复元素。

const arr = [1, 2, 3, 3, 4, 5, 5];
const uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4, 5]

代码解析:

  1. 创建一个包含重复元素的数组 arr
  2. 使用 new Set(arr)arr 转换为 Set。
  3. 使用 Array.from() 将 Set 转换为数组,并将其赋给 uniqueArr
  4. 打印 uniqueArr,输出结果为 [1, 2, 3, 4, 5]
方法 2:使用 reduce 和 includes

另一种方法是使用 reduceincludes 函数,从而对数组进行操作。

const arr = [1, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.reduce((acc, cur) => acc.includes(cur) ? acc : [...acc, cur], []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

代码解析:

  1. 创建一个包含重复元素的数组 arr
  2. 调用 arr.reduce(),并将一个空数组 [] 作为初始值。
  3. 在 reduce 回调函数中,检查累加器(即 acc)中是否已经包含了当前元素(即 cur)。如果是,则返回累加器本身;如果不是,则使用 ES6 展开语法将其添加到累加器中。
  4. 返回累加器的值 uniqueArr
  5. 打印 uniqueArr,输出结果为 [1, 2, 3, 4, 5]
方法 3:使用 filter 和 indexOf

还可以使用 filter 函数和 indexOf 函数来进行数组操作。

const arr = [1, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.filter((element, index, array) => array.indexOf(element) === index);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

代码解析:

  1. 创建一个包含重复元素的数组 arr
  2. 调用 arr.filter(),并传入一个回调函数。
  3. 在回调函数中,使用 indexOf 函数判断当前元素是否为其在数组中的第一个出现位置。如果是,则保留这个元素;否则,过滤掉这个元素。
  4. 返回过滤后的数组 uniqueArr
  5. 打印 uniqueArr,输出结果为 [1, 2, 3, 4, 5]
总结

以上是几种不同的方法,可以从 JavaScript 数组中删除重复元素。我们可以根据具体的场景和要求来选择最适合的方法,以便高效地处理数据。