首页 > 解决方案 > 如何使用 JS 传播剩余破坏删除嵌套属性?

问题描述

尝试使用传播运算符其余破坏删除多个属性,因此 drugName 被删除但我有嵌套对象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
        }
    }

]

标签: javascriptarraysobjectecmascript-6

解决方案


我不认为你可以用一个变量来做到这一点。您需要在对象内部有一个嵌套...rest变量mailPrice,然后您必须重建该对象。

const transformedResponse = [{
  "isBrand": true,
  "drugName": "Lipitor",
  "drugStrength": "80 mg",
  "drugForm": "Tablet",
  "mailPrice": {
    "copayEmployer": 0,
  }
}, {
  "isBrand": true,
  "drugName": "Metformin",
  "drugStrength": "500 mg",
  "drugForm": "Tablet",
  "mailPrice": {
    "copayEmployer": 50
  }
}];

const loggerResponse = transformedResponse.map(
  ({
    drugName,
    mailPrice: { copayEmployer, ...mailPriceRest},
    ...rest
  }) => ({mailPrice: {...mailPriceRest}, ...rest})
);

console.log(loggerResponse);


推荐阅读