web-dev-qa-db-ja.com

As3-アレイを効率的にクリアする方法は?

私はActionScript 3で配列をクリアすることを検討してきました。

いくつかの方法が示唆しています:_array = [];_(メモリリーク?)

他の人は言うでしょう:array.splice(0);

他にありましたら教えてください。どちらがより効率的ですか?

ありがとうございました。

20
ALOToverflow

_array.length = 0_またはarray.splice()は、全体的なパフォーマンスを最もよく発揮するようです。

array.splice(0);array.splice(array.length - 1, 1);よりも高速に実行されます

29
Jason

100要素の配列の場合(ミリ秒単位のベンチマーク、低いほど必要な時間が短くなります):

// best performance (benchmark: 1157)
array.length = 0;
// lower performance (benchmark: 1554)
array = [];
// even lower performance (benchmark: 3592)
array.splice(0);
6
n4pgamer

Array.pop()とarray.splice(array.length-1、1)には重要な違いがあります。つまり、popは要素の値を返します。これは、次のような配列をクリアするときに便利な1ライナーに最適です。

while(myArray.length > 0){
     view.removeChild(myArray.pop());
}
2
gregoryb
array.splice(0,array.length);

これは常に私にとってはかなりうまくいきましたが、プロファイラーで実行する機会はまだありませんでした

1
chris