10

I have a JSON object that goes like this:

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

I would like to filter the JSON object to obtain data of those taller than 170 and heavier than 70 and subsequently sort this object. From the jQuery website, I understand that filtering would be easily achieved on a linear array with something like:

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

How do I filter both weight and height concurrently to get this:

{"data":
 [
  {"name":"Ben","height":"182","weight":"90"},
 ]
 ,"school":"Dover Secondary"
}
Question Overflow
  • 10,925
  • 18
  • 72
  • 110

1 Answers1

21

I think you mean this: 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
});
pimvdb
  • 151,816
  • 78
  • 307
  • 352