在JavaScript中,去重是指從一個數(shù)組或者集合中移除重復(fù)的元素,只保留唯一的值。下面我將為你介紹幾種常見的去重操作方法。
方法一:使用Set
使用Set是一種簡單且高效的去重方法。Set是ES6中引入的一種新的數(shù)據(jù)結(jié)構(gòu),它只能存儲唯一的值。
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法二:使用filter
使用filter方法結(jié)合indexOf可以實現(xiàn)數(shù)組去重。
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法三:使用reduce
使用reduce方法可以將數(shù)組中的元素逐個與結(jié)果數(shù)組進行比較,如果結(jié)果數(shù)組中不存在該元素,則將其添加到結(jié)果數(shù)組中。
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.reduce((prev, cur) => {
if (!prev.includes(cur)) {
prev.push(cur);
}
return prev;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法四:使用Map
使用Map可以實現(xiàn)類似Set的去重效果,將數(shù)組中的元素作為Map的鍵,值可以是任意值。
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = Array.from(new Map(arr.map(item => [item, item]))).map(item => item[0]);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法五:使用遞歸
使用遞歸可以實現(xiàn)對多維數(shù)組的去重操作。
function unique(arr) {
const result = [];
arr.forEach(item => {
if (Array.isArray(item)) {
result.push(...unique(item));
} else if (!result.includes(item)) {
result.push(item);
}
});
return result;
const arr = [1, 2, [2, 3], [4, [4, 5]]];
const uniqueArr = unique(arr);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
以上是幾種常見的JavaScript去重操作方法,你可以根據(jù)實際需求選擇適合的方法來進行去重操作。希望對你有所幫助!
千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,開設(shè)Java培訓(xùn)、web前端培訓(xùn)、大數(shù)據(jù)培訓(xùn),python培訓(xùn)、軟件測試培訓(xùn)等課程,采用全程面授高品質(zhì)、高體驗教學(xué)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),想獲取更多IT技術(shù)干貨請關(guān)注千鋒教育IT培訓(xùn)機構(gòu)官網(wǎng)。