如何使用(查找)骨干中的位置来获取数组的特定字段

时间:2013-05-02 07:09:11

标签: backbone.js underscore.js

我习惯使用骨干网where中的Collections方法。但我不知道如何获取此结果:

MyCollection.Group[x].id

正如您所猜测的那样,MyCollection是集合,Group是一个数组,而id是我想要为特定值匹配的字段,例如:

MyCollection.findWhere(Group[x].id: 34);

我看过"包含" underscore的功能,但它似乎不适用于关联数组

有没有办法做到这一点,还是应该使用Javascript手动解析集合?

2 个答案:

答案 0 :(得分:9)

Collection.whereCollection.findWhere是简单过滤器的便捷功能。在您的情况下,您将使用更复杂的Collection.find(代理到_.find

  

查找 _.find(list,iterator,[context])
  查看列表中的每个值,返回通过真值测试的第一个值   (迭代器)。一旦找到可接受的函数,函数就会返回   元素,并没有遍历整个列表。

如果我理解你的情况,它可能看起来像

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

答案 1 :(得分:0)

你可以选择使用jQuery .find()。请参阅此处的示例:http://api.jquery.com/find/