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>