在 JavaScript 中,有幾種常見的方法可以對數組進行去重操作。下面介紹其中幾種常用的方法:
1. 使用 Set
Set 是 ES6 引入的一種數據結構,它可以存儲唯一的值,利用這個特性可以輕松實現數組去重。通過將數組轉換為 Set,然后再將 Set 轉換回數組,就可以去除重復的元素。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4, 5]
或者使用擴展運算符(Spread Operator)進行轉換:
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
2. 使用 indexOf 或 includes
這種方法通過遍歷數組,利用 indexOf 或 includes 方法來判斷元素是否已經存在于新數組中,如果不存在則添加到新數組中。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
if (uniqueArr.indexOf(arr[i]) === -1) {
uniqueArr.push(arr[i]);
}
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]
3. 使用 filter
使用 filter 方法結合 indexOf 或 includes 方法來過濾出不重復的元素,形成新數組。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
4. 使用 reduce
使用 reduce 方法,遍歷數組,將不重復的元素添加到新數組中。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.reduce((prev, curr) => {
if (!prev.includes(curr)) {
prev.push(curr);
}
return prev;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
這些方法都可以實現數組去重的功能,選擇使用哪種方法取決于個人偏好和具體的需求。