[英]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.