js怎么去重数组
文章标签
数组
本文提供了 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]