[解決済み] ES6+で2つのjavascriptオブジェクトをマージするにはどうしたらいいですか?
2022-04-26 03:45:03
質問
いつもこのようなコードを書かなければならないことにうんざりしています。
function shallowExtend(obj1,obj2){
var key;
for ( key in obj2 ) {
if ( obj2.hasOwnProperty(key) === false ) continue;
obj1[key] = obj2[key]
}
}
あるいは、自分でコードを書きたくなければ、すでにそれを行っているライブラリを実装すればいい。きっとこれに関してはES6+が助けに来てくれるだろう。
Object.prototype.extend(obj2...)
または
Object.extend(obj1,obj2...)
では、ES6+はそのような機能を提供しているのでしょうか?もし提供されていないなら、そのような機能は計画されているのでしょうか?もし予定されていないのであれば、それはなぜですか?
解決方法は?
Object.assignを使用することで、ES6で浅いマージ/拡張/アサインができるようになります。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
構文です。
Object.assign() 目標 , 源流 );
どこ ...源 はソースオブジェクトを表します。
例
var obj1 = {name: 'Daisy', age: 30};
var obj2 = {name: 'Casey'};
Object.assign(obj1, obj2);
console.log(obj1.name === 'Casey' && obj1.age === 30);
// true
関連
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
[解決済み】ExpressJS : res.redirect()が期待通りに動かない?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptの関数この指摘の問題を説明
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
フロントエンド null のプロパティ 'disabled' を読み取れない 問題が解決された
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] Lodash - .extend() / .assign() と .merge() の違い。