[解決済み] JavaScriptのオブジェクトを素早くクリアするには?
2022-04-21 20:15:16
質問
JavaScriptの配列では、1回の代入で空の状態にリセットすることができます。
array.length = 0;
これは、Arrayを空にして再利用できるようにするもので、私の理解する限りでは、1回の操作で済みます。
JSオブジェクトをクリアする同じような方法はないのでしょうか?フィールドを繰り返し削除できることは知っています。
for (var prop in obj) { if (obj.hasOwnProperty(prop)) { delete obj[prop]; } }
が、これには線形的な複雑さがあります。
また、オブジェクトを捨てて新しいものを作ることもできるんだ。
obj = {};
しかし、新しいオブジェクトを乱発すると、IE6ではガベージコレクションの問題が発生します。( ここに書かれているように )
解決方法は?
あなたの質問に対する短い答えは、「いいえ」だと思います(新しいオブジェクトを作成すればいいのです)。
-
この例では、長さを0に設定しても、ガベージコレクションのためにすべての要素を残すことができると思います。
-
頻繁に使うものであれば、Object.prototypeに追加してもいいかもしれませんね。確かに複雑さはリニアですが、後でガベージコレクションを行わないものはそうなります。
-
これが一番の解決策です。ご質問とは関係ないのですが、いつまでIE6のサポートを続ける必要があるのでしょうか?使用中止のキャンペーンも多く行われています。
上記で間違っていることがあれば、遠慮なく訂正してください。
関連
-
要素ツリー制御によるvueTreeテーブル
-
JSアレイループと効率解析の比較
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
元のイベントが実行されなかった後に要素を追加するためのjQueryソリューション
-
vueにおけるv-forループオブジェクトのプロパティ
-
Vueの「データを聴く」原則を解説
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules
-
[解決済み] JavaScriptで配列を空にするにはどうしたらいいですか?