gpt4 book ai didi

用于垃圾回收的 Javascript 数组删除

转载 作者:数据小太阳 更新时间:2023-10-29 06:07:08 24 4
gpt4 key购买 nike

我有一个 javascript 对象数组,每个对象都是用“new”创建的。如果出现错误,我想清除整个数组,以便 JS 引擎对其进行 GC。为此,仅将数组变量设置为“null”就足够了吗?还是我需要拼接数组中的所有元素并将它们设置为 null,然后再将数组变量设置为“null”?

我问的原因是,在 Firefox 中,我在将数组分配给 null 之前显示 (console.log) 数组,并且显示的对象(通常在我假设的显示中更新)仍然显示数组的元素当我稍后检查它时,我怀疑这些元素是否真的被释放了。

最佳答案

要清除数组,您只需将长度设置为零即可:

var arr = [1,2,3,4,5];

console.log(arr);
arr.length=0;
console.log(arr);

结果:

[1, 2, 3, 4, 5]
[]

编辑:刚刚在主题上找到了这个:http://davidwalsh.name/empty-array

看评论似乎最简单的方法就是将变量设置为新数组:

arr = [];

根据测试结果,内存 GC 比将长度设置为 0 更快。我想这与触发 GC 的分配有关。

这里有一个关于各种方法的有趣性能测试:http://jsperf.com/array-destroy

关于用于垃圾回收的 Javascript 数组删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17806003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com