📌  相关文章
📜  javascript 获取数组的唯一项 - Javascript (1)

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

JavaScript 获取数组的唯一项 - Javascript

在 JavaScript 中,经常会遇到需要获取数组中唯一项的情况。本文将介绍几种从 JavaScript 数组中获取唯一项的方法。

方法一:使用 Set

ES6 中引入了 Set,它是一种新的数据结构,可以用来存储任何类型的唯一值。可以将数组转换为 Set,然后再将 Set 转换回数组,就可以获取到数组中的唯一项。

const arr = ['a', 'a', 'b', 'c', 'c'];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // ['a', 'b', 'c']
方法二:使用 Array.filter

可以使用 Array.filter 方法来过滤掉重复项,仅保留唯一项。在 filter 方法的回调函数中,可以使用 indexOf 来检查当前项是否为数组中的第一个出现的位置。

const arr = ['a', 'a', 'b', 'c', 'c'];
const uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(uniqueArr); // ['a', 'b', 'c']
方法三:使用 Array.reduce

可以使用 Array.reduce 方法来遍历数组,并建立一个新的数组,仅包含数组中唯一的项。在 reduce 方法中,可以使用 indexOf 来检查当前项是否为数组中的第一个出现的位置。

const arr = ['a', 'a', 'b', 'c', 'c'];
const uniqueArr = arr.reduce((newArr, item) => {
  if (newArr.indexOf(item) === -1) {
    newArr.push(item);
  }
  return newArr;
}, []);
console.log(uniqueArr); // ['a', 'b', 'c']
方法四:使用 Object.keys 和 Object.fromEntries

可以使用 Object.keys 和 Object.fromEntries 方法来过滤掉重复项,仅保留唯一项。首先,将数组转换为键值对数组,然后再将其转换为对象。重复的键会自动被覆盖,因此只会保留一个唯一项。最后,可以将对象的键重新转换为数组。

const arr = ['a', 'a', 'b', 'c', 'c'];
const uniqueArr = Object.keys(Object.fromEntries(arr.map(item => [item, undefined])));
console.log(uniqueArr); // ['a', 'b', 'c']

以上是获取 JavaScript 数组中唯一项的几种方法,每种方法都有其优缺点,具体使用时需要根据实际情况选择合适的方法。