📌  相关文章
📜  javascript 在数组中查找唯一值 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:42.260000             🧑  作者: Mango

JavaScript 在数组中查找唯一值

在 JavaScript 中,数组是一个非常常用的数据结构。在处理数组时,经常遇到查找唯一值的需求。本篇文章将会介绍在 JavaScript 中,如何查找数组中的唯一值。

方法一:使用 Set 类型

ES6 提供了新的数据类型 Set,它类似于数组,但是保证了它的值是唯一的。我们可以借助 Set 类型来实现数组去重操作。

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

这里使用了 Array.from 方法将 Set 类型转成数组。我们也可以使用扩展运算符 ...

const arr = [1, 2, 3, 4, 2, 3, 1];
const uniqueArr = [...new Set(arr)]; // [1, 2, 3, 4]
方法二:使用 Array.prototype.filter()

我们可以使用 Array.prototype.filter() 方法,遍历数组并通过 indexOf 检查每一项是否已经存在,如果不存在则添加到新数组中。

const arr = [1, 2, 3, 4, 2, 3, 1];
const uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index); // [1, 2, 3, 4]
方法三:使用 Array.prototype.reduce()

我们也可以使用 Array.prototype.reduce() 方法,通过判断新数组中是否已经存在该元素来添加到新数组中。

const arr = [1, 2, 3, 4, 2, 3, 1];
const uniqueArr = arr.reduce((prev, curr) => prev.includes(curr) ? prev : [...prev, curr], []); // [1, 2, 3, 4]
总结

在 JavaScript 中,查找数组中唯一值的操作是非常常见的。我们可以借助 Set 类型、Array.prototype.filter() 和 Array.prototype.reduce() 方法来实现。具体使用哪种方法,还需要考虑到数组的大小、性能等因素。