collections - 按索引过滤 Backbone.js 集合

标签 collections filter backbone.js coffeescript

我有包含(例如)30 个项目的 Backbone.js 集合。

我想传递给我的模板过滤集合,其中包含原始集合中的每 3 个项目。

有谁知道如何优雅地完成它? CoffeeScript 代码是首选。

最佳答案

假设这里originalCollection是您现有的收藏

var newCollection = new Backbone.Collection();

for (var i = 0, l = originalCollection.length; i < l; i++) {
  if (i % 3 === 0) { newCollection.add(originalCollection.models[i]); }
}

此代码通过循环遍历每个现有模型来工作,并且仅在索引为 3 的倍数时才将模型添加到新集合中。

你可以通过使用下划线 each 使它更好一点。 Underscore.js 在 Backbone Collections 中公开的方法:
var newCollection = new Backbone.Collection();

originalCollection.each(function (model, index) {
  if (index % 3 === 0) { newCollection.add(model); }
});

将上述内容转换为 CoffeeScript 的结果是:
newCollection = new Backbone.Collection()
originalCollection.each (model, index) ->
  newCollection.add model  if index % 3 is 0

关于collections - 按索引过滤 Backbone.js 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9839699/

相关文章:

javascript - 如何使用 Backbone javascript 路由器?

java - 请求中的 GAE 错误代码 104 破坏了所有并发请求

javascript - 根据匹配过滤嵌套数组数据

javascript - Backbone.js:从 View 的 Initialize: 函数调用 render()

java - HashSet、HashMap等中如何进行值比较

sql-server-2008 - 有没有办法过滤 SQL Profiler 跟踪?

javascript - Backbone Collection Fetch - 使用自定义错误处理程序覆盖 ajax 错误处理程序

java - 为什么 Java 编译器不能解决这个问题?

Java - 什么可以替代 Google Guava Ranges?

java - MOXy 仅编码集合中的基类成员