删除node.js数组中对象的正确方法?

我已经写了一个预先删除对象的函数。

function add(variable, expireSecond){ this.list[variable] = {"expireSecond": expireSecond, "addTime": (new Date().getTime()) / 1000}; } function deleteExpiredObject(){ var currentTime = (new Date().getTime()) / 1000; for (var key in this.list) { var item = this.list[key]; if (item.expireSecond + item.addTime < currentTime){ delete this.list[key]; } } } 

当我使用它时,我试图做到以下几点:

 add(xxx[1], 300); 

但是当我调用deleteExpiredObject() ,对象过期后内存似乎不是空闲的。 是否由于xxx[1]中的对象的非零引用? 怎么解决? 有什么图书馆可以使用吗?

谢谢!

这更像是一个Javascript问题,而不是直接关联到node.js. 在Javascript中删除用于从对象中删除属性。 如果该属性引用了一个对象,则该对象不会被删除,但是如果没有更多的引用,则应该在下一个垃圾回收循环中清除它。

以下是一些与Javascript相关的问题,以及您可能会觉得有用的delete关键字:

在JavaScript中,在同一个variables上没有`delete`

什么时候应该使用删除vs设置元素在JavaScript中为null? (closures作为笨蛋,但有很好的答案)

在JavaScript中删除对象