var employees = {
"staff": [
{"name": "Bob", "gender": "Male"},
{"name": "Sue", "gender": "Female"},
{"name": "Eric", "gender": "Male"},
{"name": "Jo", "gender": "Female"}
]
}
在迭代这个json结构之后,有没有一种方法可以根据性别选择有选择地删除整行?理想情况下,我想要一个新的对象,但没有任何男性,例如。
答案 0 :(得分:5)
有.filter()
功能:
employees.staff = employees.staff.filter(function(e) { return e.gender !== "Male"; });
.filter()
方法适用于较新版本的JavaScript(现代浏览器)中的数组。对于旧版浏览器there is a polyfill available。
答案 1 :(得分:2)
使用$.grep() - 由于Array.filter()
而未使用IE < 9 supportvar females = $.grep(employees.staff, function (obj) {
console.log(this, arguments)
return obj.gender == "Female"
})
console.log(females)
另一种解决方案是将Array.filter()与pollyfill
一起使用答案 2 :(得分:0)
employees.staff = filter(employees.staff, "Female");
function filter(data, filter) {
return data.filter(function(row) {
return row.gender === filter;
});
}