两个对象,一个属性多一个属性少,想从属性多的对象中往属性少的对象中赋值同名属性,有什么好的方法?
eg:
//有什么优雅的办法把obj2的属性赋值给obj1的同名属性。
//最好不要Object.keys()去遍历,而且不让obj2中的其他属性污染obj1。
const obj1 = {
name: '',
age: '',
sex: ''
}
const obj2= {
name: 'xiaoming',
age: '18',
sex: 'man',
phone: '1xxxxxxxxxx',
address: 'xx市xx区',
friends:['xx','xxx']
}
我想到一种方法,如下:
const {name, age, sex} = obj2;
const obj3 = {...obj1, ...{name, age, sex}}
console.log( obj3 ) //{ name: 'xiaoming', age: '18', sex: 'man' }
但是新的问题就是:
- 这么写会不会有什么问题(不考虑深拷贝)。
- 如果在
obj1
中有值,但是obj2
中的同名属性是null
或者undefined
或''
,怎么能不让null
或undefined
、''
覆盖原值呢?