技術とかの雑なToday I Learnedメモ

部分的な分割代入

部分的な分割代入

同じプロパティを持つ 2 つの Object であるObject1Object2があり、いくつかのプロパティをObject2からObject1に代入したい場合、どうやってやるのがいいのかを知りたい。

なにも工夫せずに愚直にやるとしたら ↓ のようになる。

const object1 = { a: 'a', b: 'b', c: 'c', d: 'd', e: 'e' }
const object2 = { a: 'aaa', b: 'bbbb', c: 'ccc', d: 'ddd', e: 'eee' }

// object2のプロパティのうちaとbとcだけをobject1に代入したい
object1.a = object2.a
object1.b = object2.b
object1.c = object2.c

これをうまいことスマートに書きたいのだけど、うまく書けないだろうか。

分割代入 - JavaScript | MDN

この記事を読んで思い浮かぶのは、

const { a, b, c, ...rest } = object2
object1 = Object.assign(object1, { a, b, c })

という感じ。

リアクティブの探求 — Vue.js

これを読むと、

const { a, b, c, ...rest } = object2
object1 = Object.assign({}, object1, { a, b, c })

こうしなきゃいけない?

いずれにせよどうするのがいいのかもうちょっと色々やってみないと分からないかもしれん。