在JavaScript中,去重是指從一個數組或者集合中移除重復的元素,只保留唯一的值。下面我將為你介紹幾種常見的去重操作方法。
方法一:使用Set
使用Set是一種簡單且高效的去重方法。Set是ES6中引入的一種新的數據結構,它只能存儲唯一的值。
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法二:使用filter
使用filter方法結合indexOf可以實現數組去重。
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方法可以將數組中的元素逐個與結果數組進行比較,如果結果數組中不存在該元素,則將其添加到結果數組中。
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可以實現類似Set的去重效果,將數組中的元素作為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]
方法五:使用遞歸
使用遞歸可以實現對多維數組的去重操作。
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去重操作方法,你可以根據實際需求選擇適合的方法來進行去重操作。希望對你有所幫助!
千鋒教育擁有多年IT培訓服務經驗,開設Java培訓、web前端培訓、大數據培訓,python培訓、軟件測試培訓等課程,采用全程面授高品質、高體驗教學模式,擁有國內一體化教學管理及學員服務,想獲取更多IT技術干貨請關注千鋒教育IT培訓機構官網。