繁体   English   中英

过滤JSON对象的结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM