0

嘿,我有一个简单的循环,它迭代一堆对象并检查它们是否与变量匹配,如果匹配,我想将其从该列表中删除。

但我不知道该怎么做......这就是我想要做的事情的想法:

//my_objects is global (window.my_objects)

for(var i in my_objects){

   if(my_objects[i].value == 100){
       //remove it
    }

}

除了为它创建一个数组之外,还有其他选择吗?我只能找到delete仅删除该属性的属性,这意味着该对象下次仍将通过我的循环进行迭代。

该函数每 X 秒调用一次。

4

1 回答 1

1

像这样从对象中删除属性意味着它不会在下一次迭代中:

for(var i in my_objects){
   if(my_objects[i].value == 100){
       delete my_objects[i];
    }
}

注意:这会将有问题的对象作为 my_objects. 如果没有其他代码引用现在删除的对象,那么它将可用于垃圾收集并最终释放。

于 2013-01-18T04:17:12.223 回答