Javascript數(shù)組去重,你學(xué)會(huì)了嗎?
1. Javascript數(shù)組去重
在JavaScript中,有多種方法可以實(shí)現(xiàn)數(shù)組去重。
這里我將提供幾種常見的方法來幫助你理解和實(shí)現(xiàn)。
1.1. 方法 1: 使用 Set 和 Spread Operator
function unique(array) {
return [...new Set(array)];
}
let arr = [1, 2, 2, 3, 4, 4, 5];
console.log(unique(arr)); // 輸出 [1, 2, 3, 4, 5]
1.2. 方法 2: 使用 filter()
這種方法是通過遍歷數(shù)組,并且對(duì)于每一個(gè)元素檢查它是否在之后的部分再次出現(xiàn)。
如果一個(gè)元素后面沒有相同的元素,則保留該元素。
function unique(array) {
return array.filter((item, index, arr) => arr.indexOf(item) === index);
}
let arr = [1, 2, 2, 3, 4, 4, 5];
console.log(unique(arr)); // 輸出 [1, 2, 3, 4, 5]
1.3. 方法 3: 使用 reduce() 和 Set
function unique(array) {
return Array.from(new Set(array));
// 或者使用 reduce 實(shí)現(xiàn)
// return array.reduce((acc, item) => acc.includes(item) ? acc : [...acc, item], []);
}
let arr = [1, 2, 2, 3, 4, 4, 5];
console.log(unique(arr)); // 輸出 [1, 2, 3, 4, 5]
1.4. 方法 4: 使用 Object 或 Map
利用對(duì)象的鍵值對(duì)特性來存儲(chǔ)數(shù)組中的元素,并以鍵的形式存儲(chǔ)唯一的元素。
function unique(array) {
let obj = {};
let result = [];
for (let i = 0; i < array.length; i++) {
if (!obj[array[i]]) {
obj[array[i]] = true;
result.push(array[i]);
}
}
return result;
}
let arr = [1, 2, 2, 3, 4, 4, 5];
console.log(unique(arr)); // 輸出 [1, 2, 3, 4, 5]
每種方法都有其適用場(chǎng)景,選擇哪種取決于你的具體需求以及瀏覽器或環(huán)境的支持情況。
例如,Set 對(duì)象是一個(gè)較新的特性,在一些舊的瀏覽器中可能需要 polyfill 支持。而使用 filter() 或者 reduce() 可能更易于理解,并且不需要額外的 polyfill。