2

それで、私がそのようなJSONファイルを持っていると仮定しましょう:

{ "store": {
"book": [ 
  { "category": "reference",
    "author": "Nigel Rees",
    "title": "Sayings of the Century",
    "price": 8.95
  },
  { "category": "fiction",
    "author": "Evelyn Waugh",
    "title": "Sword of Honour",
    "price": 12.99
  },
  { "category": "fiction",
    "author": "Herman Melville",
    "title": "Moby Dick",
    "isbn": "0-553-21311-3",
    "price": 8.99
  },
  { "category": "fiction",
    "author": "J. R. R. Tolkien",
    "title": "The Lord of the Rings",
    "isbn": "0-395-19395-8",
    "price": 22.99
  }
    ]
  }
}

私がやりたいのは、「book」のメンバーと、タイトルが「SwordofHonour」であるすべての文字列値のペアを取得することです。JQueryでそれを行うにはどうすればよいですか?問題は、メンバーのインデックスIDがわからないことです。そうすると、それは些細なことです。つまり、store.book [1] .XXXは、探しているすべての兄弟キーと値のペアの値を教えてくれます。にとって。

最小限のコードでこれを行う方法についてのアイデアはありますか?

4

2 に答える 2

6

配列の使用filter

var matches = store.book.filter(function(val, index, array) {
    return val.title === 'Sword of Honour';
});

book結果は、フィルター述語に一致するすべての要素の配列になります。

注意:これはES5メソッドです。ES5以外のブラウザのリンクされたMDNページにシムがあります。

于 2012-08-19T20:36:53.813 に答える
0
function returnMatchedbook(store) {
    for(var i = 0; i < store.book.length; i++) {
        if(book[i].title == 'Sword of Honour') {
            return book[i];
        }
    }
 }
于 2012-08-19T20:36:33.220 に答える