As3 - 如何有效地清除数组?

发布于 2024-08-20 18:35:16 字数 174 浏览 3 评论 0原文

我一直在寻找清除 ActionScript 3 中的数组。

一些方法建议:array = [];(内存泄漏?)

其他会说:array.splice(0);代码>

如果您有其他的,请分享。 哪一种效率更高?

谢谢。

I've been looking to clear an array in ActionScript 3.

Some method suggest : array = []; (Memory leak?)

Other would say : array.splice(0);

If you have any other, please share.
Which one is the more efficient?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

揽月 2024-08-27 18:35:16

array.length = 0array.splice() 似乎最适合整体性能。

array.splice(0); 的执行速度比 array.splice(array.length - 1, 1);

array.length = 0 or array.splice() seems to work best for overall performance.

array.splice(0); will perform faster than array.splice(array.length - 1, 1);

只等公子 2024-08-27 18:35:16

对于具有 100 个元素的数组(基准以毫秒为单位,越低所需时间越少):

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

For array with 100 elements (benchmarks in ms, the lower the less time needed):

// best performance (benchmark: 1157)
array.length = 0;
// lower performance (benchmark: 1554)
array = [];
// even lower performance (benchmark: 3592)
array.splice(0);
昨迟人 2024-08-27 18:35:16

array.pop() 和 array.splice(array.length - 1, 1) 之间有一个关键区别,即 pop 将返回元素的值。在清除数组时,这对于方便的衬垫非常有用,例如:

while(myArray.length > 0){
     view.removeChild(myArray.pop());
}

There is a key difference between array.pop() and array.splice(array.length - 1, 1) which is that pop will return the value of the element. This is great for handy one liners when clearing out an array like:

while(myArray.length > 0){
     view.removeChild(myArray.pop());
}
嘿哥们儿 2024-08-27 18:35:16

我想知道,为什么要以这种方式清除数组?清除对该数组的所有引用将使其可用于垃圾回收。如果 array 是对 array 的唯一引用,array = [] 就会这样做。如果不是,那么您可能不应该清空它(?)

,还请注意“数组接受字符串作为键”。 splice 和 lenght 都只对整数键进行操作,因此它们对字符串键没有影响。

顺便说一句: array.splice(array.length - 1, 1); 相当于 array.pop();

I wonder, why you want to clear the Array in that manner? clearing all references to that very array will make it available for garbage collection. array = [] will do so, if array is the only reference to the array. if it isn't then you maybe shouldn't be emtpying it (?)

also, please note that`Arrays accept Strings as keys. both splice and lenght operate solely on integer keys, so they will have no effect on String keys.

btw.: array.splice(array.length - 1, 1); is equivalent to array.pop();

东北女汉子 2024-08-27 18:35:16
array.splice(0,array.length);

这对我来说一直很有效,但我还没有机会通过分析器运行它

array.splice(0,array.length);

this has always worked pretty well for me but I haven't had a chance to run it through the profiler yet

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文