Dynamic Columns

Dynamic columns allow you to create dynamic content based on a row's cells.

Using the dynamic option you can provide an array of column definitions. These include the column name (name) and a function (func). The function receives the current row as argument which you can use to create a custom cell based on its peers. The function's return value is used as cell content.

import { Table } from 'voici.js'

const data = [
  { firstname: 'Homer', lastname: 'Simpson', age: 39 },
  { firstname: 'Marge', lastname: 'Simpson', age: 36 },
  { firstname: 'Bart', lastname: 'Simpson', age: 10 },
  { firstname: 'Lisa', lastname: 'Simpson', age: 8 },
  { firstname: 'Maggie', lastname: 'Simpson', age: 1 }
];

const config = {
  header: {
    dynamic: {
      fullname: (row) => row['firstname'] + ' ' + row['lastname'],
      adult: (row) => row['age'] >= 18
    }
  }
};

const table = new Table(data, config);
table.printPlain();

Output:

TypeScript

When using TypeScript, you have to provide the types of your dynamic columns in order to infer them. In the example from above, this would look like this:

Last updated

Was this helpful?