我曾经在骨干网中使用where
中的Collections
方法。但我看不出如何获取此结果:
MyCollection.Group[x].id
如您所料,
MyCollection
是集合,Group
是一个数组,id
是我要为特定值匹配的字段,例如:MyCollection.findWhere(Group[x].id: 34);
我已经看到了
underscore
的“包含”功能,但是它似乎不适用于关联数组有没有办法做到这一点,还是我们应该使用Javascript手动解析集合?
最佳答案
Collection.where和Collection.findWhere是用于简单过滤器的便捷功能。在您的情况下,您将使用更复杂的Collection.find
(代理给_.find)
查找 _.find(列表,迭代器,[上下文])
浏览列表中的每个值,返回第一个通过真相测试的值
(迭代器)。找到可接受的函数后立即返回
元素,并且不会遍历整个列表。
如果我正确理解您的病情,可能看起来像
MyCollection.find(function(model) {
return _.findWhere(model.get('Group'), {id: 34});
})