2017-04-10 6 views
0

私はkey-valueのペアがたくさんある大きなオブジェクトを持っています(dictionaryなど)。何かが発生した場合、objectからkey-valueを削除します。私はdelete performance issueを意識しており、未使用の鍵をundefined/nullに設定するのは良い方法だと思われますが、私はまだGCが心配です。 objectundefinedまたはnullに設定できますが、キー(property)はまだそこに立っており、memoryを保持しています。私がdeleteキーを押すと消えるので、GCfreeキーのmemoryになります。だから、キーの真の解決策を見つけることは私にとっては紛らわしいです。key-valueコレクションobject。たぶんいくつかの提案や参考資料ですか?オブジェクトからプロパティを削除する真の方法(delete vs null vs undefined)

例:

var dic = {}; 

dic.a = 1234; 
dic.b = "hello"; 
dic.c = "!#$"; 

delete dic.a;   // { b: "hello", c: "!#$" } 
dic.b = undefined; // { b: undefined, c: "!#$" } 
dic.c = null;   // { b: undefined, c: null } 
+0

を使用することを検討して、それだけで財産がその特定の値になる可能性が削除されません。今ではプロパティ定義のチェックをヌル/未定義のチェックと混在させています。 – MinusFour

+0

@MinusFourええ、それで私はGCについて心配しています。私は財産をガベージコレクションして自由にしたい。 – MFatihMAR

+0

プロパティの削除にはどのようなパフォーマンスの問題がありますか?プロパティを離れるときに実行しているメモリの問題は何ですか? – Matt

答えて

0

何の代わりに脂肪JSオブジェクトのMapを使用してはどうですか?

var dic = new Map() 

dic.set("a", 1234); 
dic.set("b", "hello"); 
dic.set("c", "!#$"); 

dic.delete("a"); 

あなたのユースケースに応じて、あなたはまた、 `undefined`または` null`なので値にプロパティを設定Weak Maps

+0

"オブジェクトからプロパティを安全に削除する"ための解決策ではありません。とにかくありがとう :) – MFatihMAR

関連する問題