0
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全体を取得したい。

4

4 に答える 4

2

古いブラウザーでは、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
    }
}
于 2013-10-21T15:02:45.983 に答える
1

配列を反復処理して値を取得するだけです。

for(var i = 0;i < x.length; i++){
   alert(x[i].a);
}

Jsフィドル

于 2013-10-21T15:00:19.083 に答える
1

ネイティブ js を使用するか、underscoreJS lib を使用できます。 アンダースコアJS

于 2013-10-21T15:00:25.170 に答える