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

罗曼·勒奎尔

我有 2 个对象ab定义如下:

a = {
  1:3,
  2:5,
  3:1,
}

b = {
  1:{name:"Bob"},
  2:{name:"John"},
  3:{name:"Alice"}
}

我想要得到的是以下对象c定义为

c = {
  "Bob":3,
  "John":5,
  "Alice":1
}

所以创建一个使用 b[key].name 作为 c[key] 和 a[key] 作为值。

到目前为止我尝试过的是

const mapAandB = (a, b) => {
  let finalObject = [];
  Object.keys(b).forEach(key => {
    return finalOdds.push({ [b[key].name]: a[key] });
  });
  return finalOdds;
};

但结果是

c = [
  0:{Bob:3}, 
  1:{John: 5}, 
  2:{Alice:1}
]

如果你有什么建议...

或德罗里

您可以使用Array#reduce将名称和值收集到一个对象中:

const a = {"1":3,"2":5,"3":1}

const b = {"1":{"name":"Bob"},"2":{"name":"John"},"3":{"name":"Alice"}}

const result = Object.keys(a).reduce((r, key) => {
  r[b[key].name] = a[key];
  
  return r;
}, {});

console.log(result);

或者您可以使用Array#map创建一系列对象,并使用Object#assignspread将它们组合成一个

const a = {"1":3,"2":5,"3":1}

const b = {"1":{"name":"Bob"},"2":{"name":"John"},"3":{"name":"Alice"}}

const result = Object.assign(...Object.keys(a).map((key) => ({ [b[key].name]: a[key] })));

console.log(result);

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Swift - 用一个键合并 2 个对象数组

如何合并2个对象,每个对象包含一个对象数组?

Javascript 2个对象数组,从一个对象数组获取一个值并将其分配给另一个对象数组

使用 ES6 合并 2 个对象数组,并在一个数组中显示未出现在另一个数组中的对象

如何合并2个数组,其中一个值与另一个在Ruby中具有不同键的值匹配

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

Javascript:根据对象属性将 2 个对象数组合并为一个新数组

将数据从 2 个数组合并到一个新数组作为对象——Javascript

根据不同的键但相同的值合并 2 个对象数组

如何将不同键的对象数组从一个数组合并为一个键

合并 2 个对象的对象

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

将巨大数组中的每个 JavaScript 对象与另一个对象合并

有没有办法计算 2 个对象数组之间的值,然后将其合并到一个数组中?

将2个Laravel查询合并到一个对象中

是否可以将 2 个查找结果合并到 mongodb 中的一个对象中?

如何添加一个类的2个对象并合并输出?

如何将 2 个对象合并为一个 - javascript

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

角度2:将一个可观察的“内部”合并到另一个

将 2 个对象合并为一个新对象,具有选择性条件

在一个数组中合并两个对象,一个对象的键嵌套在 Mongo DB 的同一文档中比另一个更深

合并多个数组(对象)并与另一个数组进行比较

仅当键匹配时才合并 2 个对象数组

如何将键数组和值数组合并到一个对象中?

Angular 2如何将对象数组放入另一个对象数组

在PHP中合并2个对象数组

合并2个Json对象数组

JQ:将数组与另一个文件中的对象列表合并