为了账号安全,请及时绑定邮箱和手机立即绑定

合并具有数组的javascript中的两个对象

合并具有数组的javascript中的两个对象

白猪掌柜的 2023-04-27 10:38:00
我有两个对象 a 和 b。每个都有一个数组 results [],它进一步包含多个对象。我想将两个对象的结果 [] 数组合并到第三个对象 c 中。我试过了var c = Object.assign(a,b),但我没有得到结果。考虑以下示例以供参考。a = {results[{"boys": 50, "girls": 20, "red":10},{boys": 40, "girls": 10, "red":50},{boys": 30, "girls": 10, "red":50}]}b = {results[{boys": 20, "girls": 30},{boys": 50, "girls": 20},{boys": 70, "girls": 30}]}我正在寻找如下结果c = {results[{"boys": 50, "girls": 20, "red":10},{boys": 40, "girls": 10, "red":50},{boys": 30, "girls": 10, "red":50},{boys": 20, "girls": 30},{boys": 50, "girls": 20},{boys": 70, "girls": 30}]}请帮忙。提前致谢
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

在合并两个数组之前,您需要担心的第一件事是确保您的语法正确。

  1. 您的 JavaScript 对象不正确。:您的密钥后需要一个冒号 ( ) "results"

  2. 您缺少"boys"密钥的开头引号。

一旦您解决了这些问题,合并就像使用扩展语法在您的对象中创建一个新"results"数组一样简单c

不幸的是,深度合并在 ES6 中不存在,因此以下内容将不起作用:

const c = { ...a, ...b }

相反,您需要合并对象的"results".

const a = {

  "results": [

    { "boys": 50, "girls": 20, "red": 10 },

    { "boys": 40, "girls": 10, "red": 50 },

    { "boys": 30, "girls": 10, "red": 50 }

  ]

}


const b = {

  "results": [

    { "boys": 20, "girls": 30 },

    { "boys": 50, "girls": 20 },

    { "boys": 70, "girls": 30 }

  ]

}


const c = { "results": [ ...a.results, ...b.results ] }


console.log(c);

.as-console-wrapper { top: 0; max-height: 100% !important; }


查看完整回答
反对 回复 2023-04-27
  • 1 回答
  • 0 关注
  • 64 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信