[英]Filtering results of JSON Object
var employees = {
"staff": [
{"name": "Bob", "gender": "Male"},
{"name": "Sue", "gender": "Female"},
{"name": "Eric", "gender": "Male"},
{"name": "Jo", "gender": "Female"}
]
}
遍历此json结构后,是否有一种方法可以根据性别选择有选择地删除整行? 理想情况下,我想要一个新的对象,但没有任何男性,例如。
有.filter()
函数:
employees.staff = employees.staff.filter(function(e) { return e.gender !== "Male"; });
.filter()
方法适用于较新版本的JavaScript(现代浏览器)中的数组。 对于较旧的浏览器, 有一个polyfill可用 。
使用$ .grep() - 由于IE <9支持,不使用Array.filter()
var females = $.grep(employees.staff, function (obj) {
console.log(this, arguments)
return obj.gender == "Female"
})
console.log(females)
另一种解决方案是将Array.filter()与pollyfill一起使用
employees.staff = filter(employees.staff, "Female");
function filter(data, filter) {
return data.filter(function(row) {
return row.gender === filter;
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.