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

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

オブジェクトをマージするさまざまな方法(インターフェースを通じてデータを取得し、それをローカル オブジェクトに割り当てる場合に非常に便利です)

最初の方法: 手動割り当て (非常に良い)

定数obj1 = {
  名前: "zs",
  年齢: 13,
};
定数obj2 = {
  名前: "ls",
  性別:「女性」、
};
obj1 の名前 = obj2 の名前;
obj1 の性別 = obj2 の性別;

この方法は最も簡単ですが、日常のプロジェクトではオブジェクトに多くのプロパティがあるため、この方法を引き続き使用すると少し面倒になります。

2番目: 拡張演算子

定数obj1 = {
  名前: "zs",
  年齢: 13,
};
定数obj2 = {
  名前: "ls",
  性別:「女性」、
};
定数 newObj = { ...obj1, ...obj2 };
console.log(newObj === obj1); //false
console.log(newObj === obj2); //false

スプレッド演算子を使用すると、オブジェクトを素早くマージできます。欠点は、新しい変数を使用して結果を受け取る必要があることです。

3番目の方法: Object.assign() (最も推奨)

定数obj1 = {
  名前: "zs",
  年齢: 13,
};
定数obj2 = {
  名前: "ls",
  性別:「女性」、
};
obj1 と obj2 をオブジェクトに代入します。
console.log(newObj === obj1); //true
console.log(newObj === obj2); //false
コンソールにログ出力します。
// {
// 名前:'ls',
//年齢:13,
// 性別:'女性'
// }

Object.assign() メソッドは、ターゲット オブジェクトと 1 つ以上のソース オブジェクトをパラメーターとして受け取ることができます。オブジェクトが同じプロパティを持つ場合、後者のオブジェクトのプロパティが前者のオブジェクトのプロパティを上書きします。

原則としては、設定されたアクセス属性を通じて後続のオブジェクトをターゲット オブジェクトに追加するため、最終的に返される値は実際には最初のターゲット オブジェクトになります。ターゲット オブジェクトにアクセス属性を追加して、上書きプロセスを確認できます。

定数obj1 = {
  設定する(値) {
    コンソールログ(val);
  },
};
オブジェクトを割り当てます(obj1、{a: "トム" }、{a: "ジェリー" }、{a: "犬" });
//'トム'
//'ジェリー'
//'犬'

この方法は多くのシナリオで使用でき、特に次のような場合に便利です。

1.vueプロジェクトのクリアフォーム

学生の中には、フォーム内のデータに空の値を一つずつ割り当ててフォームをクリアする人もいるかもしれません。実際、効率は非常に低いです。しかし、Object.assign() と $options を一緒に使用すると、効率は非常に高くなります。

// 毎日 this.ruleForm.name='';
this.ruleForm.phone='';
this.ruleForm.imgUrl='';
this.ruleForm.des='';
...ここでは10,000語を省略 // Object.assignと$optionsを使用する
オブジェクト.assign(this.ruleForm,this.$options.data)

ヒント: $options は Vue インスタンスの初期値を保存するので、Object.assign() の上書き値機能を使用して、フォームをすばやくリセットできます。同様に、フォーム データを変更する場合は、ページの ruleForm をすばやく割り当てることもできます。

const {データ} = xxxApi.getList() を待機します。
オブジェクトにルールを割り当てます(this.ruleForm、データ)。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • jsは複数のオブジェクトを1つのオブジェクトにマージし、メソッドの実装を割り当てます
  • JavaScript で 2 つの配列オブジェクトを結合する方法
  • Javascript オブジェクトマージ操作例の分析
  • JavaScriptにおける配列結合方法とオブジェクト結合方法の詳しい説明
  • JavaScript で 2 つの Json オブジェクトを結合する方法の例

<<:  CentOS8.1 で Gitlab サーバーを構築するための詳細なチュートリアル

>>:  MySQL 学習ノート: 完全な SELECT ステートメントの使用例と詳細な説明

推薦する

MySQL 10進数符号なし更新負数を0に変換

今日、インターフェースの同時実行の問題を検証したところ、これまでredisで解決していた同時実行のプ...

JS はシンプルな todoList (メモ帳) 効果を実装します

メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド...

WeChatアプレットリクエストの前処理方法の詳細な説明

質問一部のページでは、onload でデータを要求してからビューをレンダリングするため、ミニプログラ...

よくある MySQL テーブル設計エラーの概要

目次間違い1: データの列が多すぎる誤解2: 共同クエリが多すぎる誤解3: ENUMの代わりにSET...

vue3 カスタムディレクティブの詳細

目次1. カスタム指示の登録1.1. グローバルカスタム指示1.2. ローカルカスタム指示2. カス...

base target="" はフレームを開くためのベースリンクのターゲットを指定します

<base target=_blank> は、基本リンクのターゲット フレームを新しいペ...

ウェブデザインのためのオンライン開発ツール10選の紹介

1. オンラインテキストジェネレーターBlindTextGenerator: デザイナーにとって、こ...

CentOS7 上で KVM 仮想化プラットフォームを構築する (3 つの方法)

KVM はカーネルベースの仮想マシンの略で、Linux をハイパーバイザーに変換する Linux ...

js配列の基本的な使い方のまとめ

序文配列は特別な種類のオブジェクトです。 js には実際の配列はなく、オブジェクトを使用して配列をシ...

HTML ブロックレベルタグとインラインタグの違い

1. ブロックレベル要素: 独立して存在できる能力を指します。通常、ブロックレベル要素は改行によって...

Linuxでディスク使用量を確認する方法

1. dfコマンドを使用してディスク全体の使用量を表示します。 df コマンドは、ハードディスクのマ...

MySQL InnoDB の重要なコンポーネントの概要

Innodbには以下のコンポーネントが含まれています1. innodb_buffer_pool:これ...

Vue 構成リクエストの複数サーバーソリューションの詳細な説明

1. 解決策1.1 インターフェースコンテキストパスの説明2 つのバックエンド インターフェイス サ...

XHTML 入門チュートリアル: XHTML ハイパーリンク

ハイパーリンクはインターネット全体を接続していると言っても過言ではありません。ハイパーリンクは、別の...

Dockerコマンドの学習を1つの記事にまとめる

目次導入ミラーリポジトリログイン引く押す検索ローカル画像管理画像rmiタグ建てる歴史保存負荷輸入コン...