如何通过 javaScript 传播语法为对象分配一些键
How to assign an object some keys by javaScript spread syntax
我有以下对象:
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 的情况下得到这个结果吗?
下面是两个例子,一个没有对象突变,另一个有。
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);
就这样做
const consolidated = {...inv, roles: {...inv.roles, ...result.roles} };
假设您只想将结果角色与 inv var 角色合并,这将创建基于 inv 的合并,但结果角色合并到 inv 角色中。
我有以下对象:
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 的情况下得到这个结果吗?
下面是两个例子,一个没有对象突变,另一个有。
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);
就这样做
const consolidated = {...inv, roles: {...inv.roles, ...result.roles} };
假设您只想将结果角色与 inv var 角色合并,这将创建基于 inv 的合并,但结果角色合并到 inv 角色中。