0

这个小提琴展示了如何根据我的情况下的键 9 的值来抓取不在数组中的元素id)。

http://jsfiddle.net/wgmz40ow/

此解决方案取自此处:JavaScript 中两个对象数组之间的差异

在找到该解决方案之前,我尝试使用简单的 for 循环来最终得到一个数组,该数组仅包含 in 中的对象,a而不包含 in 中的对象b

有人可以在不使用 javascriptsArray.prototype.filter功能的情况下提供解决方案吗?

编辑:就我而言,我特别想处理一个情况,数组b始终是数组的子集a

我在使用嵌套循环时遇到了麻烦,但是一旦我将内部循环分解为一个函数,我就能够非常快速地找到解决方案:

http://jsfiddle.net/xzy9Lyr0/

不幸的是,我明白为什么其他解决方案更可取 - 我的不会返回真正的差异,只有 ina而不是 in的元素b,除非我连接两个返回的数组(http://jsfiddle.net/xzy9Lyr0/2/)。

4

1 回答 1

0

这是一个可能包含恶作剧痕迹的答案。

为了扩展@Jon 通过学习理解的呼吁,这里有一个简单而复杂的解决方案:

var bstr = JSON.stringify(b);
for (var i = a.length - 1; i >= 0; i--) {
    if (!~bstr.indexOf(JSON.stringify(a[i]))) {
        c.push(a[i]);
    }
}

享受!

编辑:修正错字。

于 2014-09-04T00:29:58.277 回答