Как назначить объекту несколько ключей по распространенному синтаксису javaScript - PullRequest
0 голосов
/ 31 мая 2018

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

var inv = {roles: {"xxx00": {roleId: "zzzz33"}}, assign: [1, 2, 3] }

Это результат:

{ roles: { "1234": {roleId: null}, "5678": {roleId: null}}}

Мне нужно объединить объект с таким результатом:

{roles: {"1234": {roleId: null}, "5678": {roleId: null}, "xxx00": {roleId: "zzzz33"}}, assign: [1, 2, 3] }

И мне нужно получить это с помощью синтаксиса распространения

Есть идеи, каким должен быть синтаксис, чтобы получить этот результат без потери оригинального roleId?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

просто сделайте это

const consolidated = {...inv, roles: {...inv.roles, ...result.roles} };

Предполагая, что вы хотите только объединить свои роли результата с ролями inv var, это создаст консолидированный результат на основе inv, но с ролями результата, объединенными в роли inv.

0 голосов
/ 31 мая 2018

Ниже приведены два примера: один без мутации объекта, другой с.

let inv = {roles: {"xxx00": {roleId: "zzzz33"}}, assign: [1, 2, 3] };
let res = { roles: { "1234": {roleId: null}, "5678": {roleId: null}}};

// create new object to spec, no mutation.
let combine = { roles: { ...inv.roles, ...res.roles, }, assign: [ ...inv.assign ] };
console.log(combine);

// mutate original object.
console.log(inv);
inv.roles = {  ...inv.roles, ...res.roles, };
console.log(inv);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...