Как удалить вложенное свойство, используя уничтожение остатков распространения JS? - PullRequest
0 голосов
/ 16 мая 2019

Попытка удалить несколько свойств приводит к уничтожению остатка оператора оператора распространения, поэтому drugName удаляется, но у меня есть вложенный объект mailPrice.copayEmployer, который не разрушается. Представление о том, что реализовано неправильно?

main.js

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

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
        }
    }

]

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Я не думаю, что вы можете сделать это с одной переменной.Вам нужна вложенная переменная ...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);
0 голосов
/ 16 мая 2019

Вот как вы уничтожаете вложенный объект:

.map(({ drugName, mailPrice: { copayEmployer, ...restMail }, ...rest }) => ({ mailPrice: { ...restMail }, ...rest});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...