Backbone.js 如何使用(查找)主干中的where来获取数组的特定字段

Backbone.js 如何使用(查找)主干中的where来获取数组的特定字段,backbone.js,underscore.js,Backbone.js,Underscore.js,我使用主干中的集合中的where方法。但我不知道如何获得这个结果: MyCollection.Group[x].id 正如您所猜测的,MyCollection是集合,Group是数组,id是我希望为特定值匹配的字段,例如: MyCollection.findWhere(Group[x].id: 34); 我见过下划线的“contains”函数,但它似乎不适用于关联数组 有没有办法或者我们应该使用Javascript手动解析集合?您可以选择使用jQuery.find()。请参见此处的示例:和是

我使用主干中的
集合中的
where
方法。但我不知道如何获得这个结果:

MyCollection.Group[x].id
正如您所猜测的,
MyCollection
是集合,
Group
是数组,
id
是我希望为特定值匹配的字段,例如:

MyCollection.findWhere(Group[x].id: 34);
我见过
下划线的“contains”函数,但它似乎不适用于关联数组


有没有办法或者我们应该使用Javascript手动解析集合?

您可以选择使用jQuery.find()。请参见此处的示例:

和是用于简单过滤器的方便函数。在您的情况下,您将使用更复杂的
集合。find
(代理到)

find\uu.find(列表、迭代器、[context])
查看列表中的每个值,返回通过真理测试的第一个值 (迭代器)。函数在找到可接受的值后立即返回 元素,并且不会遍历整个列表

如果我没弄错你的情况的话

MyCollection.find(function(model) {
    return _.findWhere(model.get('Group'), {id: 34});
})

你确定这不仅仅是为了DOM?我得到一个
TypeError:无法读取未定义的
的属性'nodeType'(MyCollection)。find({Group:{id:34})
jQuery的
.find()
仅适用于DOM
$.grep()
将是jQuery的正确答案。