【发布时间】:2010-11-14 07:45:50
【问题描述】:
有没有办法在 JavaScript 中返回两个数组之间的差异?
例如:
var a1 = ['a', 'b'];
var a2 = ['a', 'b', 'c', 'd'];
// need ["c", "d"]
【问题讨论】:
-
对称还是非对称?
-
有了新的 ES6 功能,这可以作为一个简单的单行来完成(要能够在所有主要浏览器中使用需要很多时间)。无论如何检查我的answer
-
解决方案的一个重要方面是性能。这种操作的渐近时间复杂度——在其他语言中——是
O(a1.length x log(a2.length))——这种性能在 JavaScript 中是可能的吗? -
检查我的库,它可以帮助你,@netilon/differify 是对象/数组比较最快的差异库之一:npmjs.com/package/@netilon/differify
-
1.将 a1 转换为集合。 o(a1)。 2. 遍历 e2 以查看 e1 没有的内容。 o(e2)。 3. 将 diff 推入另一个数组,然后在第 2 步完成后将其返回。
标签: javascript arrays array-difference