我有数千个简单对象的数组,我想处理它。
示例:
var array = [
{name:"1"}, {name:"2"}, ..., {name:"32,000"}
]
我想只处理数组(我在其他地方引用了对象)。那么,下一个例子是否足以杀死数组?
示例:
var a1 = {name:"1"}, a2 = {name:"2"}, ... , a32000 = {name:"32,000"};
var array = [ a1, a2, ... , a32000 ];
array = null;
或者我应该做点什么:
for(var index in array) array[index] = null;
array = null;
答案 0 :(得分:9)
如果删除对数组的所有引用,则将释放您未保留引用的数组中的任何元素,即垃圾回收器将能够回收其空间。
您无需手动将null
数组元素设置为array = undefined;
。你的最后一个循环完全无用。
如果您只想回收数组的空间而不是其元素,只需删除对它的引用,
window.array = []
如果您的数组未存储在变量中但存储在属性中,例如定义为delete
,那么您也可以使用delete window.array; // or yourObject.array
:
{{1}}
但你仍然必须删除对该数组的所有引用。