合并两个对象以获得与第一个对象结构相同的另一个对象

村:

我需要一些数据结构的帮助。

我有这些对象:

const infos = {
  columnA: {color: 'red', name: 'Column Ancient' },
  columnB: {color: 'yellow', name: 'Column Blue' },
  columnC: {color: 'green', name: 'Column Consequence' },
}

const datum = { id: 0, columnA: 5, columnB: 100, columnC: 33 }

我想要这样的另一个对象(infosWithValues):

const infosWithValues = {
  columnA: {color: 'red', name: 'Column Ancient', value: 5 },
  columnB: {color: 'yellow', name: 'Column Blue', value: 100 },
  columnC: {color: 'green', name: 'Column Consequence', value: 33 },
}

这是我尝试的:

const infosWithValues = [
  ...Object.entries(infos).map(([columnName, info]) => ({
    [columnName]: { ...info, value: datum[columnName] },
  })),
]

但是我得到:

[
  { columnA: {color: 'red', name: 'Column Ancient', value: 5 } },
  { columnB: {color: 'yellow', name: 'Column Blue', value: 100 } },
  { columnC: {color: 'green', name: 'Column Consequence', value: 33 } },
]
matvs:

您几乎完全正确,您需要的是reduce而不是map

const infos = {
  columnA: {color: 'red', name: 'Column Ancient' },
  columnB: {color: 'yellow', name: 'Column Blue' },
  columnC: {color: 'green', name: 'Column Consequence' },
}

const datum = { id: 0, columnA: 5, columnB: 100, columnC: 33 }

const infosWithValues = Object.entries(infos).reduce((obj,[columnName, info]) => {
    obj[columnName] = { ...info, value: datum[columnName] };
    return obj;
 }, {})

console.log(infosWithValues)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JavaScript:如何映射两个对象以获取将第一个对象的 Id 映射到另一个对象的名称的输出?

比较对象与扩展第一个对象的另一个对象

将两个对象数组列表与第一个数组中的结构字段合并

在清空第一个对象之前从另一个对象分配一个对象的字段

如何获得与morphToMany关系的第一个对象?

比较两个对象,仅返回第一个对象的匹配值

流,检查两个对象列表是否具有与另一个对象相同的嵌套列表

合并两个对象,但是如果第一个对象已经具有属性,则忽略第二个对象中的属性

链接两个对象并使另一个对象相互关联

比较两个对象数组,然后用另一个替换对象

如何访问另一个 JSON 对象数组中的 JSON 对象数组的第一个元素?

计算第一个对象属性的值大于N并创建另一个对象

复杂解构:对象在另一个对象内的数组的第一个索引内

如何获得第一个js对象?

通过合并具有相同ID的集合中的两个对象来创建一个新对象,并将结果对象添加到另一个集合中

两个对象数组需要根据另一个键过滤一个对象

当两个类相同时,是否可以将一个对象转换为另一个对象?

当两个对象相同时,JSON 返回一个带有 ID 的字段和另一个带有完整对象的字段

如果第二个数组的项目包含数组第一个对象的id,则在Angular 8中合并两个对象数组

将一个对象合并到另一个对象

从数组中的一个对象到另一个对象的添加/合并元素

根据另一个对象的相同键对一个对象进行类型转换

从另一个对象数组构造具有两个特定对象值对的对象数组

根据另一个列表按属性删除第一个匹配的对象

非易失性字段+来自另一个线程的第一个对象访问(java)

RxJava运算符,它合并两个可观察对象,并在第一个可观察对象发出后立即发出

如何使用最新的 Javascript 合并两个对象,使一个对象的键映射到另一个对象的值,而第二个对象没有额外的键?

当两个对象具有相同的键时,如何根据另一个对象中给出的标准对来自对象的数据进行分类?

合并 2 个对象数组,从一个对象设置键,从另一个对象设置值