如何通过集合中的数组参数获取模型

时间:2013-04-15 05:45:12

标签: javascript backbone.js coffeescript underscore.js

我有一个这样的模型:

model = 
    from: "a@b.com"
    id: 1
    to: [c@d.com]

我有一个包含这些模型的集合。该集合需要按from进行过滤。我知道_.where underscore.js函数。我这样使用它:

fromIds = _.pluck _.where(msgs, from : login), 'msgId' 

需要过滤到'以及:

toIds = _.pluck _.where(msgs, to : login), 'msgId' 

它不起作用,因为to是一个数组。如何按to过滤?如果有人帮助我,我将不胜感激!

1 个答案:

答案 0 :(得分:3)

此时您需要使用_.filter。如果您查看source code,可以看到_.where只是_.filter的有用包装。 _.where适用于基于原始比较的简单过滤,但任何更复杂的事情都需要自己编写。

# Filter for messages that contain the target address.
matchedTo = _.filter msgs, (msg) -> _.contains msg.to, login

# Pluck as usual
toIds = _.pluck matchedTo, 'msgId'