私のオンラインビデオライブラリで高度な検索機能を使用しています。 JSONファイルオブジェクトmovies_objectからムービーに関する情報を取得し、ディレクター、映画名、国、俳優の名前を検索するとうまくいきます。私の問題は、私がジャンルを探しているときです。ジャンルは、別々のJSONファイルオブジェクトgenres_objectに格納されます。JSONからキーを検索し、他のJSONオブジェクトの値と比較します。
私の問題は、genres_objectでキー名を見つける方法を見つけることができないということです!私は値を持っていますが、どのようにキーを見つけるのかわかりません。私はこれをして、適切なジャンルが正しい映画になるようにしなければなりません。ここで
は、高度な検索function advanced_search(){
var genres = genres_object;
var searchParameters = get_query_string_parameters();
for(movies in movies_object){
var found1 = false;
var found2 = false;
var found3 = false;
var found4 = false;
var found5 = false;
var id = movies_object[movies].id;
if(movies_object[movies].otitle.toLowerCase() ==
searchParameters.film_title.toLowerCase() ||
isEmpty(searchParameters.film_title)) {
found1 = true;
}
if(movies_object[movies].folk) {
if(movies_object[movies].folk.toLowerCase().includes(searchParameters.actor.toLowerCase()) || isEmpty(searchParameters.actor)) {
found2 = true;
}
}
//This is the part I'm having trouble with
if(genres_objects[movies] == movies_object[movies].id){
for(var i = 0; i < genres_object[movies].length; i++){
if((genres_object[movies[i]]).includes(searchParameters.genre.toLowerCase())){
found5 = true;
}
}
}
if(found1 && found2 && && found5) {
console.log(movies_object[movies]);
results.push(movies_object[movies]);
}
display_X(results);
}
}
のための私のjavascript関数であり、ここでJSONムービーオブジェクトのためのフォーマットです:
movies_object={"1080": {"year": 1957, "otitle": "Ni liv", "youtube trailer id": "", "ntitle": "Ni liv", "mod_date": null, "length": 91, "id": 1080, "keywords": null, "reg_date": null, "description": "Jan Baalsrud er p\u00e5 et sabotasjeoppdrag fra England til Norge med 11 a", "dir": "Arne Skouen", "etitle": "Nine Lives", "country": "NOR", "imdb_id": "", "folk": "Jack Fjeldstad, Henny Moan, Lydia Op\u00f8ien, Edvard Drabl\u00f8s"},
最後に、JSONジャンルのフォーマット: genres_object = { "3734":["komedie"]、 "3724":["sci-fi"]、
ありがとうございます!
http://benalman.com/news/2010/03
または
希望を使用してJSONオブジェクトのキーを反復処理することができます/ theres-no-such-as-a-json/ – Quentin