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 の場合)

推薦する

SCSS スタイルのコードを 50% 削減する 14 の実践的な経験

序文Sass は CSS3 言語の拡張機能です。Sass を使用すると、より良いスタイルシートをより...

Vueカスタム命令とその使用方法の詳細な説明

目次1. 指令とは何ですか? Vue でよく使われる組み込みの v ディレクティブv-if と v-...

ランダムな文字を生成する Java サンプルコード

サンプルコード: java.util.Random をインポートします。 java.util.UUI...

HTML タグのネスト規則の紹介

XHTML タグには、div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、s...

JavaScript の 50 以上のユーティリティ関数の概要

JavaScript は多くの素晴らしい機能を備えています。この記事では、作業効率の向上とコードのデ...

Docker コンテナ入門から夢中になるまで(推奨)

1. Docker とは何ですか?仮想マシンについては誰もが知っています。Windows に Li...

アクセス速度を上げるためにウェブサイトを最適化する方法の更新

最近、同社はitpubを皮切りに、コーポレートウェブサイト傘下の全サイトの評価を開始した。そのために...

Vueは物流タイムライン効果を実現します

この記事では、物流タイムライン効果を実現するためのVueの具体的なコードを例として紹介します。具体的...

MySQL 5.x の文字化け問題の解決方法

MySQL はよく使われるオープンソースのデータベース ソフトウェアですが、初めてのユーザーにはあま...

Dockerでデータディレクトリを移行する方法

目次ディスク使用量の表示ディスク クリーンアップ (軽々しく使用しないでください)データの移行ディス...

MySQL ロック(テーブルロック、行ロック、共有ロック、排他ロック、ギャップロック)の詳細な説明

現実世界では、鍵は外の世界から身を隠したいときに使用するツールです。コンピュータでは、複数のプロセス...

HTML における DOM 要素のスクロールバースクロール制御の詳細な説明

dom要素に新しい子要素を追加し、新しく追加された新しい要素がコンテナーのスコープを超えた場合は、次...

Linux (Ubuntu 18.04) に Anaconda をインストールする詳細な手順

Anaconda は、大規模なデータ処理、予測分析、科学計算のための最も人気のある Python デ...

Linux の RPM パッケージでインストールされた xinetd ベースのサービスの管理

目次序文1. xinetdサービスに基づく起動管理(1)Telnetサービスのインストール(2)Te...