📌  相关文章
📜  如何从两个数组js中获取不同的值 - Javascript(1)

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

如何从两个数组js中获取不同的值 - Javascript

在Javascript中,我们经常需要比较两个数组,并找出它们之间的不同之处。这个过程可能有点复杂,但是有一些简单的方法可以帮助我们从两个数组中获取不同的值。

方法一:使用filter()和includes()
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];

const diffArray = array1.filter(x => !array2.includes(x))
                   .concat(array2.filter(x => !array1.includes(x)));

console.log(diffArray);

这个方法首先使用了filter()方法,它会过滤掉array1中包含在array2中的元素。接着,它使用了concat()方法将array2中不包含在array1中的元素加入结果中。

方法二:使用Set()
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];

const set1 = new Set(array1);
const set2 = new Set(array2);

const diffArray = [...new Set([...array1, ...array2].filter(x => !set1.has(x) || !set2.has(x)))];

console.log(diffArray);

这个方法使用了ES6引入的Set数据结构。我们首先使用Set将两个数组转化为集合。接着,我们将它们合并到一个数组中,与filter结合使用将原数组中只出现一次的元素保留下来,再用Set格式化为数组形式,最终实现从两个数组中获取不同的值。

以上两种方法都可用于比较两个数组,找出它们之间的不同之处。但是,在实际使用中,可以根据具体需求选择最合适的方法。