你.filter()之后怎么从.pluck()中获取值?

rkw*_*rkw 5 backbone.js

window.CardList = Backbone.Collection.extend(...);

var Cards = new CardList;

Cards.filter(...).pluck('values')
Run Code Online (Sandbox Code Playgroud)

是否有一种干净的方法来过滤集合然后采集值?我知道的唯一工作是重新初始化集合:

new CardList(Cards.filter(...)).pluck('values')
Run Code Online (Sandbox Code Playgroud)

或者在输出过滤后映射输出:

Cards.filter(...).map(...)
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪,因为它有一个非常好的.pluck()方法

rkw*_*rkw 6

CardList是一个骨干集合,一旦被过滤或拔出,它就变成了一个骨干模型阵列.

除非你将它包装在另一个骨干集合中(这是原帖提到的),否则不能再次采集一系列骨干模型

替代方式是:

  1. 用下划线包裹它并链接它:_(Cards.filter(...)).chain().pluck('attributes').pluck('value').value()

  2. 只是绘制出值(我最终使用了这个解决方案,它最终是最干净的):

_.map(Cards.filter(...), function(m) { return m.get('value') })
Run Code Online (Sandbox Code Playgroud)