有多种方法可以对数组进行去重,下面介绍的是常见的四种办法:
-
使用 Set 数据结构:Set 是 ES6 引入的一种新的数据结构,它存储唯一的值,可以利用它的去重特性来对数组进行去重。
const array = [1, 2, 2, 3, 3, 4, 5]; const uniqueArray = [...new Set(array)]; console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
-
使用 filter 方法:使用数组的
filter
方法结合indexOf
可以遍历数组,对每个元素进行判断,只保留第一次出现的元素,从而达到去重的效果。const array = [1, 2, 2, 3, 3, 4, 5]; const uniqueArray = array.filter((value, index, self) => { return self.indexOf(value) === index; }); console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
-
使用 reduce 方法:使用数组的
reduce
方法遍历数组,将每个元素存储在一个新数组中,但只存储第一次出现的元素,从而实现去重。const array = [1, 2, 2, 3, 3, 4, 5]; const uniqueArray = array.reduce((acc, curr) => { if (!acc.includes(curr)) { acc.push(curr); } return acc; }, []); console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
-
使用 Map 数据结构:使用 Map 数据结构存储数组中的元素,并使用元素的值作为键,对应的布尔值表示是否出现过。然后从 Map 中提取唯一的键集合,即得到去重后的数组。
const array = [1, 2, 2, 3, 3, 4, 5]; const uniqueArray = Array.from(new Map(array.map((value) => [value, true])).keys()); console.log(uniqueArray); // Output: [1, 2, 3, 4, 5