JavaScript:提取数据&;按不同属性分组
我有一个JavaScript对象数组,看起来像这样JavaScript:提取数据&;按不同属性分组,javascript,Javascript,我有一个JavaScript对象数组,看起来像这样 [ { name: "A", tp1: 10, tp2: 20, ... tp31: 30 }, { name: "B", tp1: 11, tp2: 21, ... tp31: 31 }, { name: "C", tp1: 12, tp2: 22, ... tp31: 32 }, { name: "D", tp1: 13, tp2: 23, ... tp31: 33 } ] 我想以稍微不同的方式重新排列数据。现在,你可以说“钥
[ { name: "A", tp1: 10, tp2: 20, ... tp31: 30 },
{ name: "B", tp1: 11, tp2: 21, ... tp31: 31 },
{ name: "C", tp1: 12, tp2: 22, ... tp31: 32 },
{ name: "D", tp1: 13, tp2: 23, ... tp31: 33 } ]
我想以稍微不同的方式重新排列数据。现在,你可以说“钥匙”(可以这么说)就是名字。我希望使用不同的属性(例如tp1
)对对象进行分组,并将对象中每个“名称”的值作为它们自己的属性输入
我的解释可能很糟糕,但基本上,我想将其转换为以下格式:
[ { x: "tp1" , A: 10, B: 11, C: 12, D: 13 },
{ x: "tp2" , A: 20, B: 21, C: 22, D: 23 },
...
{ x: "tp31", A: 30, B: 31, C: 32, D: 33 } ]
我真的不知道从哪里开始
提前谢谢。
让输入=[
{名称:“A”,tp1:10,tp2:20,tp31:30},
{名称:“B”,tp1:11,tp2:21,tp31:31},
{名称:“C”,tp1:12,tp2:22,tp31:32},
{名称:“D”,tp1:13,tp2:23,tp31:33}
];
让output=Object.keys(输入[0])//获取第一个元素的属性
.filter(key=>key!==“name”)/“删除”该“name”属性
.map(键=>{//迭代其余键
返回input.reduce((result,current)=>{//并将其转换为所需格式
结果[current.name]=当前[key];
返回结果;
},{“x”:key});//第一轮.reduce()的“开始”值
});
控制台日志(输出)代码>