2011-09-21 14 views
10

jQuery.grep()を使用したマルチ次元JSONオブジェクトをフィルタ処理する方法:私はこのように書きJSONオブジェクトを持っている

{"data": 
[ 
    {"name":"Alan","height":"171","weight":"66"}, 
    {"name":"Ben","height":"182","weight":"90"}, 
    {"name":"Chris","height":"163","weight":"71"} 
] 
,"school":"Dover Secondary" 
} 

私はより背が高い、それらのデータを取得するためにJSONオブジェクトをフィルタリングしたいと思います170より重く、その後このオブジェクトをソートします。

{"data": 
[ 
    {"name":"Ben","height":"182","weight":"90"}, 
] 
,"school":"Dover Secondary" 
} 
+0

これは私の体重と身長ではありません! –

答えて

21

私はあなたを思う:私はこれを取得するには、同時に重量と高さの両方をフィルタリングするにはどうすればよい

arr = jQuery.grep(arr, function(element, index){ 
    return (element > 70 && index = 'weight'); 
}); 

jQuery websiteから、私はフィルタリングが簡単のようなものでリニアアレイ上で達成されるであろうことを理解しますこれは、http://jsfiddle.net/NRuM7/1/を意味します。

var obj = {"data": 
[ 
    {"name":"Alan","height":"171","weight":"66"}, 
    {"name":"Ben","height":"182","weight":"90"}, 
    {"name":"Chris","height":"163","weight":"71"} 
] 
,"school":"Dover Secondary" 
}; 

obj.data = jQuery.grep(obj.data, function(element, index){ 
    return element.weight > 70 && element.height > 170; // retain appropriate elements 
}); 
+0

Err ..体重と身長の両方をフィルタリングしたいと思います。それはできますか? –

+0

@Ben:申し訳ありませんが、私の編集をご覧ください。 – pimvdb

+0

はい、あなたは正しいです。ありがとう;) –

関連する問題