javascript:删除关联数组的所有对象元素

javascript:删除关联数组的所有对象元素,javascript,arrays,object,memory-leaks,Javascript,Arrays,Object,Memory Leaks,我想知道在不造成任何内存泄漏的情况下清空关联数组的最有效方法(值是js对象) 为了确保这一点,我尝试了遍历数组的元素,为每个元素对象调用“delete”操作,这样所有元素对象都将成为垃圾收集的候选对象。最后,我使用以下命令重置assoc数组: somearray={} 是否有必要为每个元素调用“删除”操作?或者重置变量值就足以使所有元素都被垃圾收集吗 谢谢 只要对象和关联数组均未在其他任何位置引用,则重置数组即可 对每个对象调用delete,只有在IE6中对DOM元素才有必要。请参见somear

我想知道在不造成任何内存泄漏的情况下清空关联数组的最有效方法(值是js对象)

为了确保这一点,我尝试了遍历数组的元素,为每个元素对象调用“delete”操作,这样所有元素对象都将成为垃圾收集的候选对象。最后,我使用以下命令重置assoc数组:
somearray={}

是否有必要为每个元素调用“删除”操作?或者重置变量值就足以使所有元素都被垃圾收集吗


谢谢

只要对象和关联数组均未在其他任何位置引用,则重置数组即可


对每个对象调用
delete
,只有在IE6中对DOM元素才有必要。请参见somearray.length=0。您好,谢谢您的回复。不过,我想进一步澄清我的关切。我有一个用于存储GMarker对象的关联数组。将每个GMarker对象添加到数组后,它也会添加到映射(使用GMap2.addOverlays()方法)当我想从映射中删除所有标记时,我只需调用GMap2.clearOverlays()方法。但除此之外,我还必须清除关联数组。这是否意味着当我重置变量时,所有包含的对象最终都将被垃圾收集?提前谢谢是的,他们会的。一般来说,最好的方法是在一个循环中运行逻辑一百万次,然后在任务管理器中循环内存使用量。我明白了。那我就试试看。谢谢你的帮助!我也在想同样的事情。谁否决了这个答案?事实上,我试图添加1点,但我当时收到了“您的重复次数少于15次”的警告消息。我怀疑,尽管这会使数组在几乎所有目的下都表现为空,但数组对象上仍会挂有数字键,这将阻止在数组仍被引用(且新对象尚未推入其中)时收集它们。不过,这是一种很有用的技术,可以“清除”一个不会持续很长时间的数组。关联数组没有length属性!尝试再次创建它somearray=newarray();这不会创建一个常规数组而不是一个对象(关联数组)吗?