在JavaScript中,合并数组并去重可以通过多种方式实现。
基础概念:
相关优势:
常见类型及方法:
Set
对象:Set
是 ES6 引入的一种新的数据结构,它类似于数组,但是成员的值都是唯一的。let arr1 = [1, 2, 3];
let arr2 = [2, 3, 4];
let combined = [...new Set([...arr1, ...arr2])];
console.log(combined); // 输出: [1, 2, 3, 4]
filter
方法结合 indexOf
:let arr1 = [1, 2, 3];
let arr2 = [2, 3, 4];
let combined = arr1.concat(arr2);
let unique = combined.filter((item, index) => {
return combined.indexOf(item) === index;
});
console.log(unique); // 输出: [1, 2, 3, 4]
let arr1 = [1, 2, 3];
let arr2 = [2, 3, 4];
let combined = arr1.concat(arr2);
let obj = {};
let unique = [];
for (let i = 0; i < combined.length; i++) {
if (!obj[combined[i]]) {
obj[combined[i]] = true;
unique.push(combined[i]);
}
}
console.log(unique); // 输出: [1, 2, 3, 4]
应用场景:
可能遇到的问题及原因:
indexOf
的方法会遍历整个数组,时间复杂度较高。解决方法:
Set
,或者对数据进行预处理和分组。