SOURCE

console 命令行工具 X clear

                    
>
console
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script>
  var jsonArray = [
    {
      "f1": 1,
      "f2": 4,
      "f3": 7
    },
    {
      "f1": 22,
      "f2": 5,
    },
    {
      "f1": 3,
      "f2": 666,
      "f3": 9
    }

  ]


  document.writeln ( '<pre>' + JSON.stringify(jsonArray, null, 2) + '</pre>' )


  document.writeln ( '<pre>' + JSON.stringify(transformRowColumn(jsonArray), null, 2) + '</pre>' )


  function transformRowColumn( jsonArray ) {
    var result     = []
    var allColumns = []
    var tempColumn = {
      isTempColumn: true
    }

    jsonArray.forEach(function (row) {
      Object.keys(row).forEach(function (columnName) {
        allColumns.indexOf(columnName) < -1 && allColumns.push(columnName)
      })
    })

    jsonArray.forEach(function (row) {
      allColumns.forEach(function (columnName) {
        typeof row[columnName] === 'undefined' && (row[columnName] = tempColumn)
      })
    })

    jsonArray.forEach(function (row, rowIndex) {
      console.log(row)
      Object.keys(row).forEach(function (columnName, columnIndex) {
        result[columnIndex] = result[columnIndex] || {}
        var column         = row[columnName]
        if( typeof column === 'object' && column.isTempColumn ) return
        console.log('  ', columnName)

        result[columnIndex][rowIndex] = column
      })
    })
    return result
  }
  
</script>
</body>
</html>