【发布时间】:2016-04-26 04:03:14
【问题描述】:
我有这个 JSON:
{
"1": {
"PerId":"10900662",
"Name":"Cueball",
"Email":"cueb@example.com",
"DepartId":"11"
},
"2": {
"PerId":"10900664",
"Name":"Megan",
"MuEmail":"megan@example.com",
"DepartId":"11"
},
"3": {
"PerId":"10900665",
"Name":"Beret Guy",
"MuEmail":"bg@example.com",
"DepartId":"12"
}
}
我想用特定的DepartId 过滤
这是我测试过的代码,来自this Stack Overflow question:
<html>
<body>
Test!
</body>
<script>
var y = JSON.parse('{"1":{"PerId":"10900662","Name":"Cueball","Email":"cueb@example.com","DepartId":"11"},"2": {"PerId":"10900664","Name":"Megan","MuEmail":"megan@example.com","DepartId":"11"},"3": {"PerId":"10900665","Name":"Beret Guy","MuEmail":"bg@example.com","DepartId":"12"}}');
var z = y.filter(function (i,n){return n.DepartId == '11'})
</script>
</html>
在这种情况下,y 返回一个对象,但 Firefox 抛出 y.filter is not a function. 的错误
我希望 y 以类似的形式返回
{
"1": {
"PerId":"10900662",
"Name":"Cueball",
"Email":"cueb@example.com",
"DepartId":"11"
},
"2": {
"PerId":"10900664",
"Name":"Megan",
"MuEmail":"megan@example.com",
"DepartId":"11"
}
}
以 JavaScript 对象的形式。如何让它发挥作用?
【问题讨论】:
-
filter()可以申请数组而不是对象 -
你得到的是一个对象。过滤器只适用于数组,它应该是
[ { "PerId":"10900662", "Name":"Cueball", "Email":"cueb@example.com", "DepartId":"11" }, { "PerId":"10900664", "Name":"Megan", "MuEmail":"megan@example.com", "DepartId":"11" } ];
标签: javascript jquery json