我正在尝试使用findWhere来查明集合是否具有包含特定键的模型(如果它存在则将是一个对象)。我只想知道该集合是否包含此标准。
以下是一个示例集合:
false
我如何确定此集合是否具有带有findWhere密钥var collection = new Backbone.Collection([
{name: "Tim", age: 5},
{name: "Ida", age: 26, schools: {elementary: "School One", middle_school: "School Two"} },
{name: "Rob", age: 55}
]);
的模型?有没有更快的方法来确定这个?
答案 0 :(得分:4)
findWhere()
并非如此。我使用find()
或some()
:
collection.find(function (model) {
return model.has('schools');
});
它将返回通过测试的第一个模型(或undefined
)。如果您不关心模型,您只需测试返回值的真实性,或者您可以使用some()
代替:
collection.some(function (model) {
return model.has('schools');
});
如果模型通过测试,它将返回true
。当然,如果没有通过测试,他们就不会记录它返回的内容。
有关详细信息,请参阅Collection : Underscore Methods上的文档。