本文提供了 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]
登錄后復制