2011-09-21 20 views
10

Ho un oggetto JSON che va come questo:Come filtrare un oggetto JSON Multi-quota con jQuery.grep()

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

Vorrei filtrare l'oggetto JSON per ottenere i dati di coloro che più alto di 170 e più pesanti di 70 e successivamente ordinano questo oggetto. Dal jQuery website, ho capito che il filtro potrebbe essere raggiunto facilmente su un array lineare con qualcosa di simile:

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

Come faccio a filtrare sia il peso e l'altezza in concomitanza per ottenere questo:

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

Questo non è il mio vero peso e altezza! –

risposta

21

io pensi significa questo: 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 .. Voglio filtrare sia il peso che l'altezza. Può essere fatto? –

+0

@ Ben: Mi dispiace, vedere la mia modifica per favore. – pimvdb

+0

Sì, hai ragione. Grazie ;) –

Problemi correlati