Как фильтровать многомерный объект JSON с помощью jQuery.grep()
У меня есть объект 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 и тяжелее 70, и впоследствии сортировать этот объект. На веб-сайте jQuery я понимаю, что фильтрация будет легко достигнута на линейном массиве с чем-то вроде:
arr = jQuery.grep(arr, function(element, index){
return (element > 70 && index = 'weight');
});
Как я могу одновременно фильтровать как вес, так и высоту:
{"data":
[
{"name":"Ben","height":"182","weight":"90"},
]
,"school":"Dover Secondary"
}
Ответы
Ответ 1
Я думаю, вы имеете в виду это: 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
});