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

推薦する

Linux システムでのスケジュールされたタスクの紹介

目次1. 計画タスクをカスタマイズする2. 時間を同期する3. 練習する4. セキュリティの問題1....

Doubanウェブサイトのウェブサイトコンテンツに小さな変更を加える方法

<br />読みやすさはウェブサイトにとって非常に重要な部分であり、ウェブサイトの核心と...

MySQL の FIND_IN_SET() と IN の違いを簡単に分析します

以前、あるプロジェクトでMysql FIND_IN_SET関数を使用したことがありますが、非常に便利...

Tomcat プロセスの CPU 使用率が高い場合の解決策

目次場合コンテキスト切り替えのオーバーヘッド?要約するCPU は多くの場合、システム パフォーマンス...

Linuxのファイル操作の知識ポイントを詳しく解説

ファイル操作に関連するシステムコール作成するint creat(const char *ファイル名,...

mysql 更新ケース更新フィールド値が固定されていない操作

特定のデータの一括更新処理において、特定のステータスが固定値に更新されるなど、更新するフィールドの値...

CSSは、マウスを線の上に置くと線全体の色を変える効果を実現します。

まとめ:以下のように、CSS で指定した行にマウスを置いたときに行全体の色を変更する方法を示します。...

Linux のインスタンスにパブリック IP アドレスを割り当てる方法

説明するこのインターフェースを呼び出すときは、次の点に注意する必要があります。パブリック IP アド...

MySQL では UTF-8 が推奨されないのはなぜですか?

最近、Rails 経由で「utf8」でエンコードされた UTF-8 文字列を MariaDB に保存...

CentOS7 ファイアウォール操作コマンドの完全なリスト

目次インストール: 1. ファイアウォールの基本的な使い方2. ファイアウォールd-cmdを設定する...

JavaScript におけるブラウザ互換性の問題について簡単に説明します

ブラウザの互換性は、実際の開発では見落とされがちな最も重要な部分です。古いバージョンのブラウザの互換...

Docker インストール Nginx チュートリアル 実装図

Nginx をインストールして試してみましょう。画像はクラスであり、コンテナはオブジェクトであること...

MySQL 最適化 Zabbix パーティション最適化

zabbix を利用する上での最大のボトルネックはデータベースです。zabbix のデータストレージ...

JavaScript の基礎: 即時実行関数

目次関数フォーマットを即時実行関数を即座に実行する他の方法 – 式即時実行される関数はパラメータを取...