私は2つのjsonファイルを持っています:家と人。私は家に住むすべての人を見つけたいと思う。jsonファイルの検索ループ
家:
{
"HOUSES": {
"1": {
"NAME": "House1",
"ID": 1
},
"2": {
"NAME": "House2",
"ID": 2
},
"3": {
"NAME": "House3",
"ID": 3
}
}
}
人々: はここに私のJSONファイルである
{
"PEOPLE": {
"1": {
"NAME": "People1",
"HOUSE_ID": 1
},
"2": {
"NAME": "People2",
"HOUSE_ID": 2
},
"3": {
"NAME": "People3",
"HOUSE_ID": 2
}
}
}
、私は彼の家に関連するすべての人をリストアップしたいと思います。例:House2のすべての人をリストします。結果はPeople2とPeople3になります。
私はループのための2つを実行しようとしました:
//var houses and var peoples are the json files.
for(var i in houses){
console.log(houses[i]);
if(peoples.HOUSE_ID == houses[i].ID){
for(var j in peoples){
console.log(peoples[j].HOUSE_ID);
}
}
}
ループはIF文で入力する必要はありません。私は何をすべきか?
ありがとうございました。
編集:ここでは 両方console.log()
の結果:
HOUSE_ID : { name: 'House1',
id: 1 }
People id { NAME: 'People1',
HOUSE_ID: 1 }
People id { NAME: 'People2',
HOUSE_ID: 2 }
People id { NAME: 'People3',
HOUSE_ID: 2 }
HOUSE_ID : { name: 'House2',
id: 2 }
People id { NAME: 'People1',
HOUSE_ID: 1 }
People id { NAME: 'People2',
HOUSE_ID: 2 }
People id { NAME: 'People3',
HOUSE_ID: 2 }
HOUSE_ID : { name: 'House3',
id: 3 }
People id { NAME: 'People1',
HOUSE_ID: 1 }
People id { NAME: 'People2',
HOUSE_ID: 2 }
People id { NAME: 'People3',
HOUSE_ID: 2 }
正しくループしていません。 「住宅」の「私」は「住宅」であることに注意してください。そのためには、少し先にループする必要があります:https://jsfiddle.net/8zt69sjd/。注:あなたは自分の答えを見つけて問題を理解するのに役立つと願っています。私はフィドルにいくつかのコメントを追加しました。うまくいってみてください。問題を解決して質問を正しく提示しようとすると+1に値するはずです。また、ループを使用するのではなく、賢明なソリューションについては、下記のninaの答えを確認してください。 – briosheje
'peoples.HOUSE_ID'が存在しないので – Andreas
*" varの家とvarの人々はjsonファイルです "* - あなたはJSONを解析しましたか? 'console.log(houses [i]);'とは何ですか?あなたの質問を編集して、 'houses'変数と' peoples'変数がどのように設定されているかを明確にしてください。 – nnnnnn