Javascript backbone.js清空集合

Javascript backbone.js清空集合,javascript,collections,backbone.js,Javascript,Collections,Backbone.js,我需要清空集合,按顺序删除每个项目 this.nodes.each(function(node){ this.nodes.remove(node); }, this); 不起作用,因为删除每个节点时会更改集合的长度。制作一个临时数组,然后在上面迭代。有更好的方法吗?尝试此.nodes.reset(),除非您需要删除事件 否则: var nodes = this.nodes; while (nodes.length > 0) nodes.remove(nodes.at(0));

我需要清空集合,按顺序删除每个项目

this.nodes.each(function(node){
  this.nodes.remove(node);
}, this);
不起作用,因为删除每个节点时会更改集合的长度。制作一个临时数组,然后在上面迭代。有更好的方法吗?

尝试
此.nodes.reset()
,除非您需要
删除事件

否则:

var nodes = this.nodes;
while (nodes.length > 0)
    nodes.remove(nodes.at(0));

如果您需要在迭代时修改集合,请使用简单的反向
for
进行修改,如下所示:

var count = collection.size();
for (var i = count-1; i > -1; i--) {
    collection.remove(collection.at(i));
}

拨弄

另一种清空主干收集的方法:

while ( this.catz.length > 0) this.catz.pop();


您可以调用
collection.reset()将清空整个集合。我今天用过了

是的,我需要每个节点上的移除事件,因为它正在清除其他内容。