2011-09-21 24 views
10

Tôi có một đối tượng JSON mà đi như thế này:Làm thế nào để lọc một đối tượng JSON Multi-chiều với jQuery.grep()

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

Tôi muốn lọc các đối tượng JSON để có được dữ liệu của những người cao hơn 170 và nặng hơn 70 và sau đó sắp xếp đối tượng này. Từ jQuery website, tôi hiểu rằng lọc sẽ dễ dàng đạt được trên một mảng tuyến tính với một cái gì đó như:

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

Làm thế nào để lọc cả cân nặng và chiều cao đồng thời để có được điều này:

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

Đó không phải trọng lượng và chiều cao thực sự của tôi! –

Trả lời

21

Tôi nghĩ bạn có nghĩa là: 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 .. Tôi muốn lọc cả trọng lượng và chiều cao. Nó có thể được thực hiện? –

+0

@Ben: Xin lỗi, hãy xem bản chỉnh sửa của tôi. – pimvdb

+0

Có, bạn đã đúng. Cảm ơn ;) –

Các vấn đề liên quan