2013-11-20 63 views
2

我有2個json數組,如下所示,我將在稍後擴展jQuery。我想使用jQuery並僅比較array1中的所有元素(a,b)與array2,以檢查(a,b)是否存在於array2中,並獲取存在的區別。jQuery比較並找出2個json數組之間的區別

我已經嘗試了下面的代碼,但不知何故,我始終得到意外的控制檯輸出作爲實際回報如下。任何建議,我將不勝感激。

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] 
+0

我已經張貼相同的情況下的答案。這裏是可以幫助你和其他人的鏈接。 http://stackoverflow.com/questions/8108666/jquery-javascript-json-object-comparison/28604389#28604389 – Mou

回答

3

我已經請參考下面的鏈接,並相應修改給出答案。修改後的答案如下。

參考文獻: 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"}