首页 > 解决方案 > Javascript 对象传播的对象可能具有未定义的对象作为其属性中的数据

问题描述

嘿,我正在尝试填写一个空的占位符对象(在这种情况下,它用作 vue 的 v-model,但对于这种情况并不重要)。我正在扩展原始对象的对象内部可能有也可能没有一些对象未定义,但无论传入对象的结构如何,我都需要保持第一个对象的结构。例如对象 1

let object1 = { a : '', b : '', c : {name : 'Mark', title: 'Mr'}}

对象 2 有时会像这样出现

let object2 = { a : 'AAA', b : 'BBB', c : undefined}

即使另一个对象具有未定义的属性 c,我也需要保留对象 1 的结构。在这种情况下

let object1 = { a : 'AAA', b : 'BBB', c : {name : 'Mark', title: 'Mr'}}

谢谢

标签: javascriptvue.jsspread

解决方案


尝试将object2第一项传播,然后将属性添加c为第二项:

  object1={...object2,c:object1.c}

或者

   object1={...object2,  c : object2.c ? object2.c : object1.c}

推荐阅读