更新对象数组,而不从另一个对象添加新属性



是否可以只更新对象的现有属性值而不从另一个对象添加新属性?

这是我的例子。

form = {name: '',email: ''};
data = {name: 'sample', email: 'sample@gmail.com', datofbirth: '6/2/1990' };
form = {...form, ...data};
console.log(form);

结果:

{"name":"sample","email":"sample@gmail.com","datofbirth":"6/2/1990"}

预期成果:

{"name":"sample","email":"sample@gmail.com"}

我不希望在表单对象上添加出生日期或任何新属性。

不确定这是你想要的,希望有帮助

const form = { name: '', email: '' };
const data = {
name: 'sample',
email: 'sample@gmail.com',
datofbirth: '6/2/1990',
};
Object.keys(form).forEach(key => {
if (data.hasOwnProperty(key)) {
form[key] = data[key];
}
});
console.log(form);

仅在跨页中添加所需的键,而不是整个对象

form = { ...form, name: data.name, email: data.email };

遍历form中的所有键,并使用Object.assignspread syntax生成一个新对象。

const form = {name: '',email: ''},
data = {name: 'sample', email: 'sample@gmail.com', datofbirth: '6/2/1990' },
result = Object.assign(...Object.keys(form).map(k => ({[k] : data[k]})));
console.log(result);

最新更新