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

推薦する

HTML テーブル マークアップ チュートリアル (15): テーブル タイトル

<br />このタグを使用すると、表のタイトルを直接追加し、タイトル テキストの配置プロ...

Docker+keepalived+nginx を使用してマスタースレーブホットスタンバイを実装する方法の例

序文単一障害点を解決するには、マスター/スレーブ ホット スタンバイ ソリューションを構成する必要が...

WeChatアプレットがSMSログインを実装

目次1. インターフェース効果のプレビュー2.uViewのインストール3.uViewの設定3.1 m...

MySQL テーブルとデータベースでデータを分割する方法

目次1. 縦方向のスライス1.1 垂直データベース1.2 垂直テーブル分割2. 水平(横断)セグメン...

h5入力ボックスプロンプト+通常のテキストボックスプロンプトを実装する方法

XML/HTML コードコンテンツをクリップボードにコピー<入力 id = "ユーザ...

Vue が学ぶべき知識ポイント: forEach() の使用

序文フロントエンド開発では、目的のコンテンツを取得するためにループをトラバースする必要がある状況に頻...

Bash スクリプトでの配列メソッドの作成と使用の概要

Bashで配列を定義するbash スクリプトで新しい配列を作成する方法は 2 つあります。 1 つ目...

LinuxにNginxをインストールする詳細な手順

1. Nginxのインストール手順1.1 公式サイトの紹介http://nginx.org/en/d...

React 並行関数エクスペリエンス (フロントエンド並行モード)

React は、開発者が Web およびモバイルベースのアプリケーションを作成するために使用するオ...

Ubuntuで顔認識ログインを実装するための完全な手順

1. Howdyをインストール: howdyプロジェクトアドレス sudo add-apt-repo...

MySQLはテーブル内のフィールドを別のテーブル内のフィールドの値と等しくなるように更新します

以下のように表示されます。 table1 を z として更新し、table2 を zb として結合し...

Ubuntu 18.04 に opencv 3.2.0 をインストールするためのソリューション

opencv.zip をダウンロード依存関係を事前にインストールします。まずダウンロードソースを更新...

スクリプトを使用して、ワンクリックでDockerイメージをパッケージ化してアップロードします。

著者は1年以上マイクロフロントエンドプロジェクトに取り組んできました。チームは10個のマイクロアプリ...

CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します

1. CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します1. 一般的なスタ...

Linux MySQL ルートパスワードを忘れた場合の解決方法

MySQL データベースを使用する際、何らかの理由で長期間 MySQL にログインしていない場合、ま...