3

うーん、これはなんと言いましょうか。私のオブジェクトの例から始めましょう:

"data": {
    "events": [
        {
            "event_id": 12345,
            "event_ts_begin": 1358931738000,
            "event_ts_end": 1358931748000,
            "event_severity": "minor",
            "event_code": 23,
            "event_desc": "Completed",
            "event_type": "normal",
            "event_text": "Completed, blah on blah blah blah..."
        },
        {
            "event_id": 12346,
            "event_ts_begin": 1358931738000,
            "event_ts_end": 1358931748000,
            "event_severity": "minor",
            "event_code": 23,
            "event_desc": "Completed",
            "event_type": "normal",
            "event_text": "Completed, blah on blah blah blah..."
        },
        {
            "event_id": 12347,
            "event_ts_begin": 1358931738000,
            "event_ts_end": 1358931748000,
            "event_severity": "minor",
            "event_code": 23,
            "event_desc": "Completed",
            "event_type": "normal",
            "event_text": "Completed, blah on blah blah blah..."
        }
    ]
}

私がやりたいことは、event_id12346 がこの多次元オブジェクトのどこにあるかを見つけ出し、その特定のデータ セットをそれ自体でオブジェクトとして使用することです。どういうわけかそれを取り出して、一時変数をそのオブジェクトとして定義すると、次のようになります。

var tempObj = {
            "event_id": 12346,
            "event_ts_begin": 1358931738000,
            "event_ts_end": 1358931748000,
            "event_severity": "minor",
            "event_code": 23,
            "event_desc": "Completed",
            "event_type": "normal",
            "event_text": "Completed, blah on blah blah blah..."
        };

複数のオブジェクトを含む上記のサンプル オブジェクトは、場合によっては 1,000 以上のオブジェクトになる可能性があります。そのため、それらをループしてオプションを再構築することは、良いアイデアとは思えません。ですから、適切な解決策を考え出すために、フィードバックが得られることを願っています。

その特定のオブジェクトの特定のインデックス番号を見つけて、一時変数を定義する手段として使用する方法はありますか?

4

1 に答える 1

4

jQuery.grep関数を使用して、配列内の要素を検索できます。

var tmpObj = $.grep(data.events, function(obj){
    return obj.event_id == '12347'
});
于 2013-01-24T02:26:22.010 に答える