2014-02-21 80 views
2
var employees = { 
"staff": [ 
    {"name": "Bob", "gender": "Male"}, 
    {"name": "Sue", "gender": "Female"}, 
    {"name": "Eric", "gender": "Male"}, 
    {"name": "Jo", "gender": "Female"}  
    ] 
} 

在遍历这个json结构后,是否有一种方法可以根据性别选择有选择地删除整行?例如,理想情况下,我希望有一个新对象,但没有任何男性。JSON对象的过滤结果

+0

只是一个供参考,你的问题无关使用JSON。您可能以json的形式检索了上述对象,但它不再是json。这种区别可能会帮助您找到未来类似问题的答案。 –

回答

5

还有的.filter()功能:

employees.staff = employees.staff.filter(function(e) { return e.gender !== "Male"; }); 

.filter()方法可用于在JavaScript(现代浏览器)的较新版本的阵列。对于较旧的浏览器,there is a polyfill available

0
employees.staff = filter(employees.staff, "Female"); 

function filter(data, filter) { 
    return data.filter(function(row) { 
     return row.gender === filter; 
    }); 
}