首页 > 解决方案 > 如何通过javascript传播语法为对象分配一些键

问题描述

我有以下对象:

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

我需要使用扩展语法来获得它

知道语法应该如何在不丢失原始角色 ID 的情况下获得此结果吗?

标签: javascriptecmascript-6spread-syntax

解决方案


下面是两个例子,一个没有对象突变,另一个有。

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);


推荐阅读