Javascript объект деструктурирование / манипулирование - PullRequest
0 голосов
/ 26 апреля 2018

Допустим, у меня есть следующий объект:

const original = {
  first: 1,
  second: 2,
  third: 3
}

и я хочу создать новый отдельный объект со следующей структурой:

const modified = {
  first: 100,
  third: 3
}

Синтаксис ES6 позволяет мне выполнять довольно мощные манипуляции, например:

const {second, ...newElement} = original

, что приводит к:

const newElement = {
  first: 1,
  third: 3
}

но тогда мне все равно придется сделать newElement.first = 100.

В качестве альтернативы я мог бы сделать:

const newElement2 = Object.assign({}, original , {second: undefined, first: 100})

но на самом деле это не удаляет second, оно просто устанавливает undefined.


Есть ли более элегантная альтернатива для перехода с original на modified?

1 Ответ

0 голосов
/ 26 апреля 2018

Создайте объект с обновленным first: 100, используя распространение объекта , затем деструктурируйте его, используя оставшийся объект .

Примечание: Остаток / разворот объекта - это предложение на этапе 4 для ECMAScript, а не часть ES6.

const original = {
  first: 1,
  second: 2,
  third: 3
}

const { second, ...newElement } = { ...original, first: 100 };

console.log(newElement);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...