Javascript 将基于行的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"

我想将基于行的JSON转换为基于列的JSON。我以基于行的形式接收JSON,并将使用它进行一些可视化,这在基于列的形式中更容易实现

基于行的将如下所示:

{
  "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;}
除了遍历每个对象之外,没有更好的方法。由于需要映射所有值,因此必须遍历所有键。

结构似乎非常奇怪。为什么使用具有数值属性的对象而不是数组?数值属性只是一个例子。我写下来只是为了强调行和列之间的变化。没有必要。非常感谢。我希望有一种不同的方式,但我将不得不使用循环。欢迎。你可以接受这个答案。一旦实现了该函数,就将其作为库公开。可能对某些人有用。:)