1

假设我想wherepluck我的应用程序的鸟。

首先我想找到所有word_type的名词。

然后我想采摘word属性,这样最终的结果是:

所有属于名词的词。

["Lion", "Capybara", "Cat"]

当我尝试:

@words = new Project.Collections.WordsCollection()
@words.where(word_type: "noun").pluck("word_type")

它返回:

this.words.where({word_type: "noun"}).pluck is not a function
4

1 回答 1

3

问题是它where返回一个模型数组,并且该数组没有混合任何下划线方法。您可以展开pluck(实际上只是特定类型的map):

_(@words.where(work_type: 'noun')).map (m) -> m.attributes.word_type

或使用下划线混合

@chain()
    .filter((m) -> m.attributes.word_type == 'noun')
    .map((m) -> m.attributes.word_type)
    .value()

或者,由于您正在过滤和采摘相同的东西,您可以计算匹配项并在之后构建您的数组:

n = @reduce(
    ((n, m) -> n += (if m.attributes.word_type == 'noun' then 1 else 0)),
    0
)
matches = ('noun' for i in [0 ... n])
于 2012-07-04T01:32:01.830 回答