Javascript 如何使用JS spread rest销毁删除嵌套属性?
尝试使用Sign spread运算符rest destruction删除多个属性,因此drugName正在被删除,但我有嵌套对象Javascript 如何使用JS spread rest销毁删除嵌套属性?,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,尝试使用Sign spread运算符rest destruction删除多个属性,因此drugName正在被删除,但我有嵌套对象mailPrice.copayEmployer,该对象未被销毁。是否知道实现了什么错误 main.js const transformedResponse = transformResponse(response); const loggerResponse = transformedResponse.map( ({drugName, mailPrice
mailPrice.copayEmployer
,该对象未被销毁。是否知道实现了什么错误
main.js
const transformedResponse = transformResponse(response);
const loggerResponse = transformedResponse.map(
({drugName, mailPrice.copayEmployer, ...rest}) => rest
);
转化反应
[{
"isBrand": true,
"drugName": "Lipitor",
"drugStrength": "80 mg",
"drugForm": "Tablet",
"mailPrice": {
"copayEmployer": 0
}
}, {
"isBrand": true,
"drugName": "Metformin",
"drugStrength": "500 mg",
"drugForm": "Tablet",
"mailPrice": {
"copayEmployer": 50
}
}
]
这是如何分解嵌套对象的:
.map(({ drugName, mailPrice: { copayEmployer, ...restMail }, ...rest }) => ({ mailPrice: { ...restMail }, ...rest});
我不认为你可以用一个变量来做这件事。在
mailPrice
对象中需要一个嵌套的…rest
变量,然后必须重新构造该对象
const transformedResponse=[{
“isBrand”:没错,
“药品名称”:“立普妥”,
“药物浓度”:“80毫克”,
“药片”:“片剂”,
“邮资”:{
“copayEmployer”:0,
}
}, {
“isBrand”:没错,
“药品名称”:“二甲双胍”,
“药物浓度”:“500毫克”,
“药片”:“片剂”,
“邮资”:{
“雇员”:50人
}
}];
const loggerResponse=transformedResponse.map(
({
药名,
mailPrice:{copayEmployer,…mailPriceRest},
休息
})=>({mailPrice:{…mailPriceRest},…rest})
);
console.log(loggerResponse)代码>您想要达到的结果是什么?您想保留mailPrice
属性,但删除其中的copayEmployer
属性?@Barmar是的,这是正确的,只想删除mailPrice.copayEmployer并保留对象的其余部分。我不认为这会满足他的要求…rest
将不包含mailPrice
对象的其余部分。是的,这是删除mailPrice的完整对象,我现在不想确定,更好吗?@Jack Bashford这不会发生,有没有其他方法代替spread操作符?