1

我有一个这样的模型:

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?如果有人帮助我,我将不胜感激!

4

1 回答 1

3

这时候你需要使用_.filter. 如果您查看源代码,您会发现它_.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'
于 2013-04-15T05:50:12.853 回答