JavaScript中如何将对象键值对平级合并到目标对象
问题描述
我需要把keystoInsert对象中的每个键值对平级插入到payload对象中,但直接将keystoInsert作为属性添加时,会形成嵌套对象,无法达到平级展开的效果,求正确实现方法。
待插入对象
keystoInsert = { "marketName": "Chicago", "roleUserFirstName": null, "roleUserLastName": null, "roleUserEmailAddress": null }
初始代码片段
const payload: requestPayload | any = { accountId: 1, };
预期输出
{ "accountId": 1, "marketName": "Chicago", "roleUserFirstName": null, "roleUserLastName": null, "roleUserEmailAddress": null }
解决方法
方法一:使用对象展开运算符(推荐)
通过ES6的对象展开运算符...,可以直接将keystoInsert的所有键值对平级展开到payload中,写法简洁直观:
const payload: requestPayload | any = { accountId: 1, ...keystoInsert // 展开对象的所有属性 };
方法二:使用Object.assign()
该方法会将源对象的属性复制到目标对象上,实现平级合并:
const payload: requestPayload | any = { accountId: 1, }; // 将keystoInsert的属性合并到payload Object.assign(payload, keystoInsert);
两种方法都能实现预期的平级合并效果,优先推荐第一种,代码更简洁易读。
内容的提问来源于stack exchange,提问作者Mark Latin
相关产品推荐
相关产品推荐

