📅  最后修改于: 2023-12-03 15:40:03.438000             🧑  作者: Mango
在JavaScript中,经常需要比较两个数组中的元素有何不同,这就涉及到数组差异。下面将介绍几种不同的实现方法。
该方法使用filter方法,将第一个数组中的元素与第二个数组做比较,过滤出仅存在于第一个数组中的元素。
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [2, 4, 6];
const diff = arr1.filter(item => !arr2.includes(item));
console.log(diff); // [1, 3, 5]
该方法使用reduce方法,将第一个数组中的元素与第二个数组做比较,返回仅存在于第一个数组中的元素的新数组。
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [2, 4, 6];
const diff = arr1.reduce((result, item) => {
if (!arr2.includes(item)) {
result.push(item);
}
return result;
}, []);
console.log(diff); // [1, 3, 5]
该方法使用Set数据结构,将第一个数组和第二个数组转换为Set对象,取两个Set对象的差集,再将结果转换为数组。
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [2, 4, 6];
const diff = [...new Set(arr1)].filter(item => !new Set(arr2).has(item));
console.log(diff); // [1, 3, 5]
以上是三种常见的数组差异实现方法,可以根据具体情况选择不同的方法。