首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过javaScript扩展语法为对象分配一些键

如何通过javaScript扩展语法为对象分配一些键
EN

Stack Overflow用户
提问于 2018-05-31 21:38:44
回答 2查看 451关注 0票数 0

我有以下对象:

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的情况下获得这个结果吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-01 04:20:22

就这么做吧

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

假设您只想将结果角色与inv变量角色合并,这将创建基于inv的合并,但结果角色合并到inv角色中。

票数 1
EN

Stack Overflow用户

发布于 2018-05-31 21:55:40

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50625700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档