JSFiddle - React, Tailwind, and code Playground

by abhiklpm

JavaScript

var input = {
  "name": "price-hierarchy",
  "metadata": {
    "name": "price1",
    "valid-from": "01/01/2020"
  },
  "definition": [
    {
      "rowId": 0,
      "columns": {
        "0": "",
        "1": "Silver",
        "2": "Gold"
      }
    },
    {
      "rowId": 1,
      "columns": {
        "0": "Region1",
        "1": "100",
        "2": "200"
      }
    },
    {
      "rowId": 2,
      "columns": {
        "0": "Region2",
        "1": "80",
        "2": "60"
      }
    }
  ]
};

var getFilteredTableData = function(data){
  var tableData = {};
  	tableData['header'] = [];
  	tableData['body'] = [];
    
  Object.entries(data[0]['columns']).forEach(([key, val]) => {
  	tableData['header'].push({'field': val});
  });
  
  data.shift();
  
  Object.entries(data).forEach(([key, val]) => {
    tableData['body'].push(val['columns']);
  });
  return tableData;
};
var tableData = getFilteredTableData(input.definition);
//console.log(tableData)

var setTableData = function(tableData)
{
  var cols = tableData['header'].length;
  var rows = tableData['body'].length;
  var colHeadings = tableData['header'];
  var body = tableData['body'];
  var data = [];
  data.push({'rowId' : 0, 'columns' : Object.values(colHeadings) })
  for(var i=0; i<rows; i++){
      data.push({'rowId' : i, 'columns' : Object.values(body[i]) });
  }
  return data;
}

var data = setTableData(tableData);
console.log(data)