我有以下两个json数组,稍后我将做一个jQuery扩展。我想使用jQuery,仅将array1中的所有元素(a,b)与array2进行比较,以检查(a,b)是否存在于array2中,如果存在则求出差值。

我已经尝试了以下代码,但是无论如何我总会在下面得到意外的控制台输出,作为实际的返回值。任何建议,我将不胜感激。

var array1 = {a: "AT", b: "1000"};
var array2 = {c: 0, d: 100, a: "AT", b: "1002"};
console.log($(array1).not(array2).get());


预期收益:

[Object]
    0: Object
    b: "1000"
    __proto__: Object
    length: 1
    __proto__: Array[0]


实际回报:

[Object]
    0: Object
    a: "AT"
    b: "1000"
    __proto__: Object
    length: 1
    __proto__: Array[0]

最佳答案

我已参考下面的链接,并相应地修改了给定的答案。修改后的答案如下。

参考文献:
Compare two JSON arrays in JQuery or Javascript

修改后的答案:

var origArrayGroups = {c: 0, d: 100, a: "AT", b: "1002"};
var userArrayGroups = {a: "AT", b: "1000"};

var diff = {};
for (var prop in userArrayGroups) {
    console.log("Comparing element: " + prop);
    if(userArrayGroups[prop] != origArrayGroups[prop])
    {
        diff[prop] = origArrayGroups[prop];
        console.log("Result: " + userArrayGroups[prop] + "!=" + origArrayGroups[prop]);
    }
    else
    {console.log("Result: " + userArrayGroups[prop] + "==" + origArrayGroups[prop]);}

}

console.log(diff);


实际回报:

Object {b: "1002"}

10-01 05:41
查看更多