📜  数组差异 javascript (1)

📅  最后修改于: 2023-12-03 15:40:03.438000             🧑  作者: Mango

数组差异 JavaScript

在JavaScript中,经常需要比较两个数组中的元素有何不同,这就涉及到数组差异。下面将介绍几种不同的实现方法。

方法一:使用filter方法

该方法使用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方法

该方法使用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对象,取两个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]

以上是三种常见的数组差异实现方法,可以根据具体情况选择不同的方法。