5

コレクションを空にして、各アイテムを順番に削除する必要があります。

this.nodes.each(function(node){
  this.nodes.remove(node);
}, this);

各ノードが削除されるとコレクションの長さが変わるため、機能しません。一時配列を作成し、それを反復処理すると機能します。もっと良い方法はありますか?

4

4 に答える 4

4

イベント this.nodes.reset()が必要でない限り試してください。remove

さもないと:

var nodes = this.nodes;
while (nodes.length > 0)
    nodes.remove(nodes.at(0));
于 2012-10-17T14:48:41.973 に答える
1

反復中にコレクションを変更する必要がある場合は、次のforような単純な逆方向を使用して行います。

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

http://jsfiddle.net/xt635/のフィドル

于 2012-10-17T15:13:43.363 に答える