如何搜索骨干j中的对象数组。该集合包含人物模型。
[{
name: "John",
age: "18",
likes: {
food: "pizza",
drinks: "something",
}
},
......
]
我怎样才能找到喜欢某事的人。
我确实试过collection.where({likes :{food : "pizza"}});
答案 0 :(得分:0)
由于您的food
属性位于Person属性的对象中,因此使用where
(默认只查看平面属性)并不起作用。您可以使用filter
方法将真值测试应用于集合中的所有项目,然后获取通过的项目。
在您发布的代码中,您看起来没有正确的Backbone Collection,只是一个常规的对象数组。
由于页面上有下划线,您可以使用它来帮助过滤列表。
var people = [
{
name: "John",
age: "18",
likes: {
food: "pizza",
drinks: "something",
}
},
......
];
var likesPizza = _.filter(people, function(person) {
return person.likes.food === "pizza";
});
如果它实际上是Backbone Collection,您可以使用
this.collection.filter(people, function(person) {
return person.get('likes').food === "pizza";
});