【问题标题】:javascript: create dictionary from array of key-values objects [duplicate]javascript:从键值对象数组创建字典[重复]
【发布时间】:2021-12-05 06:12:26
【问题描述】:

我有一个对象数组。

const ar = [ {0 : "A"}, {1 : "B"}];

我想用它创建一个字典

const di =  {0 : "A", 1 : "B"};

我对这种转换有点挣扎。如何使用 map 或 reduce 来做到这一点?

const di = ar.map( ob => (???) }

【问题讨论】:

  • const di = Object.assign({}, ...arr)

标签: javascript arrays dictionary


【解决方案1】:

您应该在此处使用reduce 而不是mapmap 将为您提供一个对象数组,但您需要的是一个对象将所有键。所以reduce是最好的工具。

Main difference between map and reduce

const ar = [{ 0: "A" }, { 1: "B" }];
const di = { 0: "A", 1: "B" };

const result = ar.reduce((acc, curr) => {
  Object.keys(curr).forEach((k) => (acc[k] = curr[k]));
  return acc;
}, {});

console.log(result);

【讨论】:

    【解决方案2】:

    一个简单的reduce 可用于合并所有对象。请注意,密钥必须是唯一的,否则您将覆盖它们。

    使用spread syntax完成合并

    const ar = [{0 : "A"}, {1 : "B"}];
    
    const di = ar.reduce((acc, obj) => ({...acc, ...obj}));
    
    console.log(di);

    另一个简单的方法是使用Object.assign

    const ar = [{0 : "A"}, {1 : "B"}];
    
    const di = Object.assign({}, ...ar);
    
    console.log(di);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      • 2013-06-25
      • 2016-01-30
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      相关资源
      最近更新 更多