如何从对象数组创建JavaScript对象?

如何从对象数组创建JavaScript对象?,javascript,Javascript,我试图将对象数组转换为对象格式,将值作为新对象的键 假设我得到了这些数据: const data = [ { key: "foo", value: "xyz", classLabel: "Test" }, { key: "foo", value: "abc", classLabel: "Test" }, { key: "bar",

我试图将对象数组转换为对象格式,将值作为新对象的键

假设我得到了这些数据:

const data = [
{
  key: "foo",
  value: "xyz",
  classLabel: "Test"
},
{
  key: "foo",
  value: "abc",
  classLabel: "Test"
},
{
  key: "bar",
  value: "aaa",
  classLabel: "Test"
}]
我想建立的格式如下:

const expected = {
  foo: ["xyz", "abc"],
  bar: ["aaa"]
}
这些值被传输到关键帧,并被推送到相同的数组中以获得重复的关键帧。 到目前为止,我只提取了以下关键点:

const result = [...new Set(data.map(item => item.key))];  // ["foo", "bar"]
const数据=[
{
键:“foo”,
值:“xyz”,
类别标签:“测试”
},
{
键:“foo”,
值:“abc”,
类别标签:“测试”
},
{
键:“酒吧”,
价值:“aaa”,
类别标签:“测试”
}];
let expected=data.reduce((out,{key,value})=>{
out[键]=out[键]| |[];
out[键]。push(值);
返回;
}, {});

console.log(预期)以下各项应能正常工作:

const数据=[
{
键:“foo”,
值:“xyz”,
类标签:“测试”,
},
{
键:“foo”,
值:“abc”,
类标签:“测试”,
},
{
键:“酒吧”,
价值:“aaa”,
类标签:“测试”,
},
];
常量mapToObj=(arr)=>{
设obj={};
为了(让我进来){
设objKey=arr[i].key;
obj[objKey]
?Object.assign(obj,{[arr[i].key]:[obj[objKey],arr[i].value]})
:Object.assign(obj,{[arr[i].key]:arr[i].value});
}
返回obj;
};

console.log(mapToObj(数据))“对象的javascript数组按属性分组”这是否回答了您的问题?