📌  相关文章
📜  数组javascript中的唯一值(1)

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

数组JavaScript中的唯一值

在JavaScript中,数组是一种常用的数据类型。有时候我们需要从数组中获取唯一的值集合,即去掉重复的值。这里介绍几种实现方法。

使用Set数据结构

ES6中引入了Set数据结构,它是一种类似于数组但唯一的值集合。我们可以先将数组的所有值添加到Set中,然后再将Set转换为数组即可。

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

这里使用Array.from()方法将Set转换为数组。也可以使用扩展运算符(...)来转换。

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

另外,可以使用Set构造函数来创建一个空的Set集合,然后使用add()方法来添加数组中的元素。

const arr = [1, 2, 3, 1, 2, 4];
const uniqueSet = new Set();
arr.forEach(num => {
  uniqueSet.add(num);
});
const uniqueArr = Array.from(uniqueSet);
console.log(uniqueArr); // [1, 2, 3, 4]
使用indexOf()方法

我们可以使用indexOf()方法来比较每个值在数组中的位置,只添加第一次出现的值到新的数组中。

const arr = [1, 2, 3, 1, 2, 4];
const uniqueArr = [];
arr.forEach(num => {
  if (uniqueArr.indexOf(num) === -1) {
    uniqueArr.push(num);
  }
});
console.log(uniqueArr); // [1, 2, 3, 4]
使用reduce()方法

reduce()方法用于对数组中的元素依次处理并返回一个最终结果。在这里,我们使用reduce()方法来比较新数组中是否已经有当前元素。如果没有,就将它添加到新数组中。

const arr = [1, 2, 3, 1, 2, 4];
const uniqueArr = arr.reduce((acc, currentValue) => {
  if (acc.indexOf(currentValue) === -1) {
    acc.push(currentValue);
  }
  return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4]

这里,reduce()方法的第二个参数[]是一个初始值,表示初始的结果为空数组。

以上就是在JavaScript中获取唯一数组值的方法。使用ES6中的Set数据结构是最方便的方法,但也可以使用indexOf()或reduce()方法来实现。