2011-08-03 5 views
3

jQueryを使用してJavaScriptオブジェクトリストを検索する最も簡単な方法は何ですか?jQueryを使用してJavaScriptオブジェクトリストを検索する最も簡単な方法は?

例えば、私が定義され、次のJS configブロックがあります。

var ProgramExclusiveSections = 
{ 
    "Rows": 
    [ 
     { 'ProgramId': '3', 'RowId': 'trSpecialHeader'}, 
     { 'ProgramId': '3', 'RowId': 'trSpecialRow1' }, 
     { 'ProgramId': '3', 'RowId': 'trSpecialRow2' }, 
     { 'ProgramId': '1', 'RowId': 'trOtherInfo' } 
    ] 
} 

ユーザーがProgram ID = 3を選択したので、私はこのJS設定オブジェクトに設定しただけで、「行」を取得したいですプログラムID = 3のためにこれは私のjavascriptオブジェクトのリストを取得します:

var rows = ProgramExclusiveSections.Rows 

が、その後私はどこのRowIdは= 3私はjQueryを使ってこれを行うための最も簡単な方法は何にこれをダウンフィルタリングする必要がありますか? ($.grep()、よりエレガントであるが)

+0

'rowid'は決して3と同じではない –

答えて

7

$.grep()

var matches = $.grep(rows, function (elt) 
{ 
    return elt.ProgramId === '3'; 
}); 
0

$.map()はそれを行うだろう。

var objs= $.map(ProgramExclusiveSections.Rows, function(obj, index) { 
    return obj.RowId === "3"? obj : null; 
}); 

これは(あなたが文字列ではなく数を持って気づく)RowId「3」を持つオブジェクトの配列を返します。

+0

@Matt - それはなぜ必要なのでしょうか? –

+0

D'oh!そうです、私は '.map()'ではなく '.map()'を考えていました。 –

関連する問題