我想合并2个对象。
一个对象是默认形式。
let data = {
weight: '',
DOB: '',
gender: '',
}
另一个不规则,如下所示
let temp1 = {
weight: '19.2',
}
let temp2 = {
DOB: '1992-11',
}
let temp3 = {
DOB: '1992-11',
gender: 'Male',
}
let temp4 = undefined;
如果我合并data
和temp1
,结果应该是
let data = {
weight: '19.2',
DOB: '',
gender: ''
}
如果我合并data
和temp3
,结果应该是
let data = {
weight: '',
DOB: '1992-11',
gender: 'Male',
}
如果我合并data
和temp4
,结果应该是
let data = {
weight: '',
DOB: '',
gender: ''
}
请给我一些建议以实现它。
谢谢。
答案 0 :(得分:5)
您可以使用Object.assign()
:
let data = {
weight: '',
DOB: '',
gender: '',
}
let temp3 = {
DOB: '1992-11',
gender: 'Male',
}
data = Object.assign(data, temp3);
或者如果您不想更改数据对象:
let data2 = Object.assign({}, data, temp3);
也可以使用散布运算符,基本上相同,只是原始数据对象不变:
data = { ...data, ...temp3 };
答案 1 :(得分:1)
通过jQuery
,您可以使用$.extend()
let data = {
weight: '',
DOB: '',
gender: '',
}
let temp1 = {
weight: '19.2',
}
console.log($.extend(data,temp1))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
或按照以下说明使用JavaScript传播算子...
let data = {
weight: '',
DOB: '',
gender: '',
}
let temp3 = {
DOB: '1992-11',
gender: 'Male',
}
data={...data,...temp3}
console.log(data)
如果键相同,则使用最严格对象的值