Javascript 将基于行的JSON转换为基于列的JSON
我想将基于行的JSON转换为基于列的JSON。我以基于行的形式接收JSON,并将使用它进行一些可视化,这在基于列的形式中更容易实现 基于行的将如下所示:Javascript 将基于行的JSON转换为基于列的JSON,javascript,json,row,transform,Javascript,Json,Row,Transform,我想将基于行的JSON转换为基于列的JSON。我以基于行的形式接收JSON,并将使用它进行一些可视化,这在基于列的形式中更容易实现 基于行的将如下所示: { "0": { "fname": "John", "lname": "Miller", "age": 50 }, "1": { "fname": "Eve", "lname": "Johnson", "age": 40 }... 基于列的示例: { "fname"
{
"0": {
"fname": "John",
"lname": "Miller",
"age": 50
},
"1": {
"fname": "Eve",
"lname": "Johnson",
"age": 40
}...
基于列的示例:
{
"fname": {
"0" : "John",
"1" : "Eve"
},
"lname": {
"0" : "Miller",
"1" : "Johnson"
},
"age": {
"0": 50,
"1" : 40
}...
有没有比循环遍历所有元素并完全重写JSON更有效的方法
谢谢 至少,您需要为结果对象交换关键帧
var data={0:{fname:“John”,lname:“Miller”,年龄:50},1:{fname:“Eve”,lname:“Johnson”,年龄:40},
结果=对象。键(数据)。减少(函数(r,k){
Object.key(数据[k]).forEach(函数(l){
r[l]=r[l]|{};
r[l][k]=数据[k][l];
});
返回r;
}, {});
控制台日志(结果)代码>
.as console wrapper{max height:100%!important;top:0;}
除了遍历每个对象之外,没有更好的方法。由于需要映射所有值,因此必须遍历所有键。结构似乎非常奇怪。为什么使用具有数值属性的对象而不是数组?数值属性只是一个例子。我写下来只是为了强调行和列之间的变化。没有必要。非常感谢。我希望有一种不同的方式,但我将不得不使用循环。欢迎。你可以接受这个答案。一旦实现了该函数,就将其作为库公开。可能对某些人有用。:)