PHP前端开发

js怎么去重数组

百变鹏仔 3天前 #JavaScript
文章标签 数组
本文提供了 4 种 javascript 数组去重方法:使用 set 数据结构、使用 object、使用 filter 方法、以及使用 reduce 方法。这些方法都能有效地移除数组中重复的元素,生成一个不包含重复元素的新数组。

如何使用 JavaScript 数组去重

引言
JavaScript 数组中可能会包含重复的元素,在某些情况下,我们需要对其进行去重操作,以获得一个不包含重复元素的新数组。

方法

1. Set

Set 数据结构具有自动去重功能,我们可以利用它来实现数组去重:

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

2. Object

对象中的键是唯一的,我们可以利用此特性来去重数组中的元素:

const arr = [1, 2, 3, 4, 5, 1, 2];const uniqueArr = [];const obj = {};arr.forEach(item => {  if (!obj[item]) {    obj[item] = true;    uniqueArr.push(item);  }});console.log(uniqueArr); // [1, 2, 3, 4, 5]

3. Filter

另一种方法是使用 filter 方法,它允许我们根据条件过滤数组中的元素:

const arr = [1, 2, 3, 4, 5, 1, 2];const uniqueArr = arr.filter((v, i, a) => a.indexOf(v) === i);console.log(uniqueArr); // [1, 2, 3, 4, 5]

4. Reduce

Reduce 方法也可以用于去重数组,将其累积为一个不包含重复元素的新数组:

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