📜  js 从数组中获取不同的值 - Javascript (1)

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

JavaScript:从数组中获取不同的值

在 JavaScript 中,我们可以通过以下几种方法从数组中获取不同的值:

1. 使用 Set 对象

Set 对象是 ES6 新加入的数据结构,它可以存储任何类型的唯一值,就像数学中的集合一样。

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

以上代码创建了一个数组 arr,其中包含了重复的元素。通过将它传递给 Set 对象,我们可以将数组中的所有重复元素自动去重,并将结果赋值给新的数组 uniqueArr,其中使用了 ES6 的扩展运算符 ... 来将 Set 对象转换为数组。

2. 使用 filter 和 indexOf 方法

filter 用于对数组进行过滤操作,indexOf 用于获取指定元素在数组中的位置。

const arr = [1, 2, 3, 3, 4, 5, 5, 6];
const uniqueArr = arr.filter((item, index, arr) => {
  return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6]

以上代码创建了一个数组 arr,其中包含了重复的元素。我们使用了 filter 方法对数组进行过滤操作,返回其中满足条件的元素组成的新数组 uniqueArr,其中判断元素是否出现过的方法是通过获取元素在数组中的位置进行判断的。

3. 使用 reduce 方法

reduce 用于将数组中的元素组合起来,通过一个函数对数组中的每个元素进行归纳计算,最终返回一个累加的结果。

const arr = [1, 2, 3, 3, 4, 5, 5, 6];
const uniqueArr = arr.reduce((acc, cur) => {
  if (!acc.includes(cur)) {
    acc.push(cur);
  }
  return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6]

以上代码创建了一个数组 arr,其中包含了重复的元素。我们使用了 reduce 方法对数组中的元素进行归纳计算,将结果保存在 acc 中,并通过 !acc.includes(cur) 判断元素是否已经存在于 acc 中,如果不存在,则将其加入数组中。最终返回的 acc 就是去重后的数组。

以上是 JavaScript 中从数组中获取不同的值的三种方法。根据实际情况选择最合适的方法来进行操作即可。