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 に答える