3

我有数千个简单对象的数组,我想处理它。

例子:

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;
4

1 回答 1

10

如果删除对数组的所有引用,则数组中未保留引用的任何元素都将被释放,即垃圾收集器将能够回收其空间。

您不需要手动设置null数组的元素。你的最后一个循环完全没用。

如果您只想回收数组的空间,而不是它的元素,只需删除对它的引用,方法是

array = undefined; 

如果您的数组不是存储在变量中而是存储在属性中,例如定义为window.array = [],那么您也可以使用delete

delete window.array; // or yourObject.array

但是您仍然必须删除对该数组的所有引用。

于 2013-02-19T16:21:46.147 回答