我有一个这样的模型:
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
过滤?如果有人帮助我,我将不胜感激!
答案 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'