如何合并不规则对象

zyn*_*nkn 0 javascript object

我想合并2个对象.

一个对象是默认表单.

let data = {
  weight: '',
  DOB: '',
  gender: '',
}
Run Code Online (Sandbox Code Playgroud)

另一个是不规则的,如下所示

let temp1 = {
   weight: '19.2',
}

let temp2 = {
   DOB: '1992-11',
}

let temp3 = {
   DOB: '1992-11',
   gender: 'Male',
}

let temp4 = undefined;
Run Code Online (Sandbox Code Playgroud)

如果我合并datatemp1,结果应该是

let data = {
  weight: '19.2',
  DOB: '',
  gender: ''
}
Run Code Online (Sandbox Code Playgroud)

如果我合并datatemp3,结果应该是

let data = {
  weight: '',
  DOB: '1992-11',
  gender: 'Male',
}
Run Code Online (Sandbox Code Playgroud)

如果我合并datatemp4,结果应该是

let data = {
  weight: '',
  DOB: '',
  gender: ''
}
Run Code Online (Sandbox Code Playgroud)

给我一些建议来实现它.

提前致谢.

Pie*_*Duc 5

你可以使用Object.assign():

let data = {
  weight: '',
  DOB: '',
  gender: '',
}


let temp3 = {
   DOB: '1992-11',
   gender: 'Male',
}

data = Object.assign(data, temp3);
Run Code Online (Sandbox Code Playgroud)

或者如果您不希望更改数据对象:

let data2 = Object.assign({}, data, temp3);
Run Code Online (Sandbox Code Playgroud)

也可以使用扩展运算符,它基本上是相同的,只是原始数据对象不会改变:

data = { ...data, ...temp3 };
Run Code Online (Sandbox Code Playgroud)