Untitled

 avatar
unknown
plain_text
a month ago
955 B
3
Indexable
 flattenData(
    data: VgsResultsTable,
    parentName?: string
  ): Array<DataVisualizerData> {
    const entries = Object.entries(data);
    let tableData: Array<DataVisualizerData> = [];

    if (entries.length === 0) {
      return tableData;
    }

    const valueEntry = entries.find(ent=> ent[0] === 'value');
    if (valueEntry)
    {
      const name = parentName ?? '';
      const unitEntry = entries.find(ent=> ent[0] === 'unit');
      const unit = unitEntry ? unitEntry[1] : undefined;
      const value = valueEntry[1];
      tableData.push({
        id: name,
        name,
        value,
        unit
      });
      return tableData;
    }

    entries.forEach((entry) => {
      const key = entry[0];
      const value = entry[1];
      const name = `${parentName ? `${parentName}.` : ''}${key}`;

      tableData = tableData.concat(this.flattenData(value, name));
    });

    return tableData;
  }
Leave a Comment