簡體   English   中英

javascript檢查一次鍵值是否同時存在於2個JSON對象中

[英]javascript check if a key value exists in 2 JSON objects at once

我有2個JSON對象,想要檢查第一個對象中的值是否出現在第二個對象中的任何位置,如果確實存在,請將其推入數組。 我試圖編寫一個for循環來做到這一點,但是我似乎無法正確地做到這一點。

有人可以指出我做錯了什么嗎?

 var JSON1 = [{ "1": "1", "2": "2" }, { "1": "3", "2": "4" }]; var JSON2 = [{ "1": "1", "2": "2" }, { "1": "3", "2": "4" }]; var matching = []; for (var key in JSON1) { if(JSON2[.hasOwnProperty(JSON1[key].1) ) { matching.push(JSON1[key].1); } } console.log(matching); 

您可以按值比較兩者

var JSON1 = [{
    "1": "1",
        "2": "2"
}, {
    "1": "3",
        "2": "4"
}];

var JSON2 = [{
    "1": "1",
        "2": "2"
}, {
    "1": "3",
        "2": "4"
}];

var matching = [];



for(x in JSON1) {
  for(y in JSON1[x]){
    if(JSON1[x][y] ==  JSON2[x][y]){
       matching.push(JSON1[x][y]);
       }
  }
}



console.log(matching);

注意:對於數字作為鍵,應使用obj[number]而不是obj.number

 var JSON1 = [{ "1": "1", "2": "2" }, { "1": "3", "2": "4" }]; var JSON2 = [{ "1": "1", "2": "2" }, { "1": "3", "2": "4" }]; var matching = []; for (var key in JSON1) { for(var k in JSON1[key]){ if(key in JSON2 && k in JSON2[key] && JSON1[key][k] == JSON2[key][k]) { matching.push(JSON1[key][k]); } } } console.log(matching); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM