我有一系列对象,我试图过滤并仅返回其中包含' IsSubstitute'财产的价值是真的。
[
{
EndTime: "16:00",
IsSubstitute: false,
OutletId: 619777,
StartTime: "05:00",
VisitDate: "2014-05-30",
id: "168de242-d031-49f2-96d1-803154d0df1e"
},
{
EndTime: "17:00",
IsSubstitute: true,
OutletId: 619755,
StartTime: "05:00",
VisitDate: "2014-05-30",
id: "168de242-d031-49f2-96d1-803154d0dabc"
},
{
EndTime: "18:00",
IsSubstitute: true,
OutletId: 619722,
StartTime: "05:00",
VisitDate: "2014-05-30",
id: "168de242-d031-49f2-96d1-803154d0ddfg"
}
// and so on...
]
我试过这个没有运气:
data = $.grep(data, function (e) {
return e.IsSubstitute = false;
});
请帮忙!
提前致谢
答案 0 :(得分:1)
您使用=
设置值,但不检查是否相等。
使用===
,这意味着严格等于:
data = $.grep(data, function (e) {
// --------------------v
return e.IsSubstitute === true;
// or simply return e.IsSubstitute;
});
答案 1 :(得分:0)
您可以尝试原生Array.prototype.filter
:
arr.filter(function(v){ return v.IsSubstitute == true});
答案 2 :(得分:0)
您应该使用JS数组的内置.filter
方法。使用您的示例,您将使用:
data = data.filter( function(item) { return item.IsSubstitute === true })
并非所有浏览器都支持过滤器,但所有现代浏览器都支持过滤器(IE9,FF,Chrome)。