如何在javascript中将项转换为键/值对对象?

如何在javascript中将项转换为键/值对对象?,javascript,list,arraylist,Javascript,List,Arraylist,将数据结构转换为键/值项时出现问题 我已经尝试了一些映射和转换,但是我想要的输出没有显示在我的控制台上 我的函数有以下代码输出: 控制台:{BLAU:Array(1),ROT:Array(2)} 并打开: 控制台: - BLAU: [{…}] - ROT: (2) [{…}, {…}] 我想要的输出应该是这样的: const nachher = [{ farbe: 'BLAU', typen: [{ type: 'mytype1' }] }, {

将数据结构转换为键/值项时出现问题

我已经尝试了一些映射和转换,但是我想要的输出没有显示在我的控制台上

我的函数有以下代码输出:

控制台:
{BLAU:Array(1),ROT:Array(2)}

并打开:

控制台:

- BLAU: [{…}]
- ROT: (2) [{…}, {…}]

我想要的输出应该是这样的:

const nachher = [{
    farbe: 'BLAU',
    typen: [{
      type: 'mytype1'
    }]
  },
  {
    farbe: 'ROT',
    typen: [{
      type: 'mytype1'
    }],
    [{
      type: 'mytype2'
    }]
  },
];
编辑:

函数[{…},{…},{…},{…}]的输出如下:

const nachher = [{
    farbe: 'BLAU',
    typen: [{
      type: 'mytype1'
    }]
  },
  {
    farbe: 'ROT',
    typen: [{
      type: 'mytype1'
    }],
    [{
      type: 'mytype2'
    }]
  },
];
[
{
id:100,
系统:{id:101,标签:“BLAU”,创建日期:“2019-07-30”},
详细信息:[{…},{…}],
信息:“测试”
},
{
id:400,
系统:{id:404,标签:“ROT”,创建日期:“2019-07-30”},
详细信息:[{…},{…}],
信息:“测试”
}
]


我想通过系统标签和上面所需的输出对这一个进行分组。GroupBy只还给我一个对象

您可以获取对象的第一个条目,将其分解为所需的键/值对,然后重新生成一个新对象

const
数据=[{BLAU:[{type:'mytype1'}]},{ROT:[{type:'mytype1'},{type:'mytype2'}]}],
结果=数据.map(o=>{
var[farbe,typen]=Object.entries(o)[0];
返回{farbe,typen};
});

控制台日志(结果)欢迎使用堆栈溢出!请拿着(你得到了一枚徽章!)通读一下,尤其是你最好的选择是做你的研究,做相关的主题,然后试一试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会乐于帮助的。
ROT
不是一个正确的对象。首先纠正你的问题。@AdamOrlov sry,是的,这个例子不正确,现在更好了?你在外部对象中只有一个属性吗?为什么不
typen:[{type:'mytype1'},{type:'mytype2'}]
或更短的:
typen:['mytype1','mytype2']
如果我只有这个输入:{BLAU:[{type:'mytype1'}]}、{ROT:[{type:'mytype1'}、{type:'mytype2'}]}而不是[{BLAU:[{type:'mytype1'}]}、{ROT:[{type:'mytype1'}、{type:'mytype2'}]}]?或者我可以轻松地将上面的第一个转换为项(数据)在你的答案中显示了吗?你不可能有这个。只有更多的对象没有像数组这样的容器。啊,好吧,我发现了我猜的错误。我的GroupBy列表的输出与我上面描述的不一样。我的输出是{BLAU:[{type:'mytype1'}},{ROT:[{type:'mytype1'},{type:'mytype2'}]}它仍然忽略了周围的数组。不幸的是,我的groupBy(ramda)函数只提供了这个输出。它是一个返回类型的对象,而不是数组。你知道我能做什么吗?