JavaScript でオブジェクトのプロパティを削除する方法

JavaScript でオブジェクトのプロパティを削除する方法

1. 削除

delete は、オブジェクトのプロパティを残さずに削除する唯一の方法ですが、その「代替」設定 object[key] = undefined よりも 100 倍遅くなります。

var myObject = {
    "ircEvent": "PRIVMSG",
    "メソッド": "newURI",
    "正規表現": "^http://.*"
};
myObject.regex を削除します。

コンソールにログ出力します。

delete 演算子は、指定されたプロパティをオブジェクトから削除します。削除が成功した場合は true を返し、それ以外の場合は false を返します。ただし、次のような状況では重要な考慮が必要です。

削除しようとしているプロパティが存在しない場合は、削除しても効果はありませんが、true が返されます。

オブジェクトのプロトタイプ チェーンに、削除するプロパティと同じ名前のプロパティがある場合、プロパティを削除した後、オブジェクトはプロトタイプ チェーン上のプロパティを使用します (つまり、削除操作は自身のプロパティに対してのみ機能します)。

var で宣言されたプロパティは、グローバル スコープまたは関数のスコープから削除することはできません。

この場合、削除操作では、グローバル スコープ内の関数を削除できません (関数が関数宣言からのものか関数式からのものかに関係なく)。

削除できないグローバル スコープ内の関数を除き、オブジェクト内の関数は delete 操作を使用して削除できます。

let または const で宣言されたプロパティは、宣言されたスコープから削除することはできません。

構成できないプロパティは削除できません。つまり、Math、Array、Object などの組み込みオブジェクトのプロパティや、Object.defineProperty() メソッドを使用して設定不可に設定されたプロパティは削除できません。

2. obj.field = 未定義;

この選択はこの質問に対する正しい答えではありません。ただし、注意して使用すれば、一部のアルゴリズムを大幅に高速化できます。ループ内でdeleteを使用してパフォーマンスに問題がある場合は、詳細な説明を読んでください。

 var obj = {
     フィールド: 1     
 };
 obj.field = 未定義;

3. 配列内でdeleteを使用する

配列では、delete を使用するとフォーム内にゴミが残る単純な古いオブジェクトとは異なり、null は配列に「穴」を作成し、長さは変更されません。

var 配列 = [1, 2, 3, 4];
配列[2]を削除します。
/* 期待される結果 --> [1, 2, 4]
 * 実際の結果 --> [1, 2, null, 4]
 */

4. 配列内でのスプライスの使用

arrayObject.splice(インデックス、数、項目1、.....、項目X)

インデックス: 必須。整数。項目を追加/削除する位置を指定します。配列から項目を削除するには負の数を使用します。

最後に指定された位置。

数: 必須。削除するアイテムの数。 0 に設定すると、アイテムは削除されません。

項目1: オプション。配列に追加された新しい項目。

var arr = 新しい配列(6)
arr[0] = "ジョージ"
arr[1] = "ジョン"
arr[2] = "トーマス"
arr[3] = "ジェームズ"
arr[4] = "アンドリュー"
arr[5] = "マーティン"

document.write(arr + "<br />")
arr.splice(2,0,"ウィリアム")
document.write(arr + "<br />")
/*
*ジョージ、ジョン、トーマス、ジェームズ、アンドリュー、マーティン
*ジョージ、ジョン、ウィリアム、トーマス、ジェームズ、アンドリュー、マーティン
*/

要約する

JavaScript でオブジェクトのプロパティを削除する方法についての記事はこれで終わりです。JavaScript でオブジェクトのプロパティを削除する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • AngularJSループオブジェクトプロパティで動的列を実装するアイデアの詳細な説明
  • JavaScriptはオブジェクトの不要なプロパティを削除します
  • springboot post インターフェースが json を受け入れる場合、それがオブジェクトに変換されると、プロパティはすべて null になります。
  • JS でオブジェクト プロパティを簡単にトラバースするいくつかの方法
  • js 属性オブジェクトの hasOwnProperty メソッドの使用
  • JS hasOwnProperty() メソッドは、プロパティがオブジェクト自身のプロパティであるかどうかを検出します。
  • 例を通して JavaScript の Date オブジェクトのプロパティとメソッドを解析する
  • Java オブジェクトを JSON に変換する際のプロパティの動的な追加、削除、変更、クエリの詳細な説明
  • オブジェクトをJSONに変換する場合、Java jacksonはサブオブジェクトのプロパティ操作を無視します。
  • JavaScript オブジェクトの 3 つのプロパティ

<<:  MySQLの外部ネットワークアクセス権を開く方法

>>:  MySql 5.7.21 無料インストール バージョンの構成方法 (Win10 の場合)

推薦する

Dockerは同じIPネットワークセグメントとの接続を実現する

最近、Docker とホストが同じネットワーク セグメント上で通信する問題を解決し、そのプロセス全体...

オンラインチャットを実現するVue+sshフレームワーク

この記事では、オンラインチャットを実現するためのVue + sshフレームワークの具体的なコードを参...

CSS を使用して正方形の div を実装する 2 つの方法

目標: 辺の長さが等しい正方形を作成する方法 1: 単位 vw を使用する (ps これが最も簡単な...

SSMは、mysqlデータベースアカウントのパスワード暗号文ログイン機能を実装します。

導入当社は、情報セキュリティと機密アプリケーションに関わるいくつかのプロジェクトの研究開発に従事して...

JavaScriptオブジェクトをマージするさまざまな方法の詳細な説明

目次オブジェクトをマージするさまざまな方法(インターフェースを通じてデータを取得し、それをローカル ...

CSS3で実装された水平ヘッダーメニュー

結果:実装コードhtml <nav class="dropdownmenu"...

興味深いカウントダウン効果を実現するjs

js興味深いカウントダウンケース、参考までに、具体的な内容は次のとおりですコード: <!DO...

JavaScript の querySelector メソッドと getElementById メソッドの違いを分析する

目次1. 概要1.1 querySelector() と querySelectorAll() の使...

Vuex全体のケースの詳細な説明

目次1. はじめに2. 利点3. 使用手順1. Vuexをインストールする2. Vuexを参照する3...

Navicat for SQLite で中国語データを CSV にインポートする方法

この記事では、参考までに、csv中国語データをNavicat for SQLiteにインポートする具...

HTML における相対と絶対の使用法と違いの詳細な説明

HTML における相対と絶対の違い: 正直に言うと、HTML は世界で最もシンプルな言語です。タグ言...

HTML 中国語文字エンコード標準の概要

HTML では、Web ページで使用されるエンコーディングを指定する必要があります。一般的な指定方法...

MySQL マルチバージョン同時実行制御 MVCC の詳細な研究

MVCC MVCC (Multi-Version Concurrency Control) は、マル...

Nodejs でモジュール fs ファイルシステムを使用する方法

目次概要ファイル記述子同期、非同期、Promise同期書き込み非同期書き込み(推奨)約束​​の書き方...

動的な色切り替えの実装コードをサポートするために、CSS で SVG 画像を参照します。

表示する svg 画像を追加すると、React はファイルが見つからないというメッセージを表示します...