var x = [{ a: 1, b: 2}, { a: 11, b: 12}, { a: 31, b: 23}, { a: 51, b: 24}]
どうやって見つけますa = 11
か?
単純な配列x.indexOf('1');
の場合、おそらく解決策は次のようになります
var a1 = x.indexOf({a: 1});
もちろん、値が一致するJSON全体を取得したい。
var x = [{ a: 1, b: 2}, { a: 11, b: 12}, { a: 31, b: 23}, { a: 51, b: 24}]
どうやって見つけますa = 11
か?
単純な配列x.indexOf('1');
の場合、おそらく解決策は次のようになります
var a1 = x.indexOf({a: 1});
もちろん、値が一致するJSON全体を取得したい。
古いブラウザーでは、shim をサポートするArray.Filterを使用できます。
var x = [{
a: 1,
b: 2
}, {
a: 11,
b: 12
}, {
a: 31,
b: 23
}, {
a: 51,
b: 24
}],
tocomp = 11;
var res = x.filter(function (ob) {
return ob.a === tocomp;
});
結果は、条件に一致するオブジェクトの配列になります。
また、単一の一致だけを処理して一致したオブジェクトを取得する場合は、for ループを使用します。
var x = [{
a: 1,
b: 2
}, {
a: 11,
b: 12
}, {
a: 31,
b: 23
}, {
a: 51,
b: 24
}],
tocomp = 11, i, match;
for (i=0, l=x.length; i<l; i++){
if(x[i].a === tocomp){
match = x[i];
break; //break after finding the match
}
}
ネイティブ js を使用するか、underscoreJS lib を使用できます。 アンダースコアJS