繁体   English   中英

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

[英]the correct way to delete object in an array for 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]对象的非零引用引起的吗? 怎么解决? 我可以使用任何图书馆吗?

谢谢!

这不仅仅是直接与node.js相关,而是更多的Javascript问题。 Javascript中的Delete用于从对象中删除属性。 如果该属性引用了一个对象,则不会删除该对象,但是如果没有更多对该对象的引用,则应在下一个垃圾回收周期中将其清除。

以下是一些有关Javascript和delete关键字的问题,您可能会发现它们有用:

Javascript中相同变量上的`new`不带`delete`

什么时候应该在JavaScript中使用delete vs setting元素设置为null? (已关闭,但有很好的答案)

在JavaScript中删除对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM