gpt4 book ai didi

javascript - 如何在 JavaScript 中获取两个数组之间的差异?

转载 作者:IT老高 更新时间:2023-10-28 11:13:35 26 4
gpt4 key购买 nike

有没有办法在 JavaScript 中返回两个数组之间的差异?

例如:

var a1 = ['a', 'b'];
var a2 = ['a', 'b', 'c', 'd'];

// need ["c", "d"]

最佳答案

使用 ES7 有更好的方法:


交叉口

 let intersection = arr1.filter(x => arr2.includes(x));

Intersection difference Venn Diagram

对于 [1,2,3] [2,3] 它将产生 [2,3]。另一方面,对于 [1,2,3] [2,3,5] 将返回相同的内容。


区别

let difference = arr1.filter(x => !arr2.includes(x));

Right difference Venn Diagram

对于 [1,2,3] [2,3] 它将产生 [1]。另一方面,对于 [1,2,3] [2,3,5] 将返回相同的内容。


对于对称差异,您可以:

let difference = arr1
.filter(x => !arr2.includes(x))
.concat(arr2.filter(x => !arr1.includes(x)));

Symmetric difference Venn Diagram

这样,您将得到一个数组,其中包含 arr1 中所有不在 arr2 中的元素,反之亦然

正如@Joshaven Potter 在他的回答中指出的那样,您可以将其添加到 Array.prototype 中,以便像这样使用它:

Array.prototype.diff = function(arr2) { return this.filter(x => !arr2.includes(x)); }
[1, 2, 3].diff([2, 3])

关于javascript - 如何在 JavaScript 中获取两个数组之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com