Object.assign-overrideのネストされたプロパティ
2023-12-01 01:12:16
質問
オブジェクト
a
のように
const a = {
user: {
…
groups: […]
…
}
}
にはもっとたくさんのプロパティがあります。
a.user
そして、私は
a.user.groups
の値だけを変更したいのです。こうすると
const b = Object.assign({}, a, {
user: {
groups: {}
}
});
b
以外のプロパティはありません。
b.user.groups
以外のプロパティは削除されます。他の全てのプロパティを失うことなく、ネストされたプロパティだけを変更するES6方法はありますか?
Object.assign
?
どのように解決するのですか?
試行錯誤の結果、このような素敵な解決策を見つけることができました。
const b = Object.assign({}, a, {
user: {
...a.user,
groups: 'some changed value'
}
});
その答えをより完全なものにするために、ここに小さなメモをします。
const b = Object.assign({}, a)
とは本質的に同じです。
const b = { ...a }
の全てのプロパティをコピーしているだけなので
a
(
...a
) を新しいオブジェクトに変換します。つまり、上記は次のように書くことができます。
const b = {
...a, //copy everything from a
user: { //override the user property
...a.user, //same sane: copy the everything from a.user
groups: 'some changes value' //override a.user.group
}
}
関連
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] JavaScript でオブジェクトが特定のプロパティを持つかどうかを確認するにはどうすればよいですか?
-
[解決済み] オブジェクトリテラル/イニシャライザーの自己参照
-
[解決済み] JavaScriptの配列情報をcsvにエクスポートする方法(クライアント側)?
-
[解決済み] SetをArrayに変換するには?
-
[解決済み] オブジェクトスプレッド vs. Object.assign
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み】オブジェクトの配列をプロパティ値でソートする
-
[解決済み】ES6クラス変数の代替品
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] AngularJS - ngRepeatフィルタリングされた結果の参照を取得する方法
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?