首页 > 解决方案 > 我们如何向 JS 扩展运算符添加属性?

问题描述

下面我添加了 patientId 和 inusranceId 到传播运算符,只是想看看是否有更好的方法来完成这个任务?

main.js

const Response = await getData(re);
const patientId = "AW364747";
const insuranceId = "0000786622";


logger().info('Response=', { ...Response, drugName: '[REDACTED]' , patientId, insuranceId});

标签: javascriptarraysecmascript-6

解决方案


你所拥有的是正确的。

let newResponse = {...Response, drugName: '[REDACTED]'}

如果 Response 中缺少 drugName 属性,将添加该属性。或者,如果它在响应中,它将覆盖 drugName 属性。

let newResponse = { drugName: 'defaultname', ...Response}

会做相反的事情,如果 Response 包含 drugName,它将覆盖 drugName: 'defualtname' 或者如果它在 Response 中不存在,它将添加 drugName。

例子:

const Response = { prop: 'some prop', drugName: 'Original Drug'}

const spreadFirst = { ...Response, drugName: 'New drug'}
// spreadFirst = { prop: 'some prop', drugName: 'New drug'}

const spreadLast = { drugName: 'Newest Drug', ...Response}
// spreadLast = { prop: 'some prop', drugName: 'Original Drug'}

推荐阅读