voici.js
GitHubTypeDocnpm☕
  • 🏠Home
  • ⚡Quick Start
  • 💡Examples
    • Styling
      • Alignment
      • Colors
      • Border
      • Padding
      • Width
      • Font Style
    • Sorting
    • Highlighting
    • Accumulation
    • Columns
      • Sort Columns
      • Selected Columns
      • Rename Columns
      • Dynamic Columns
    • Arrays
    • Fill Empty
    • Export
    • Typescript
    • Printing
  • 🧩Contributing
  • Reference
    • 📖API Reference
      • AccumulationFunction
      • Config
      • Sort
      • Table
    • ❓FAQ
    • ❗Issues
Powered by GitBook
On this page

Was this helpful?

  1. Examples

Sorting

Sort the table by given columns and directions.

PreviousFont StyleNextHighlighting

Last updated 3 years ago

Was this helpful?

You can sort the table by multiple columns and directions. Using the option provide an array of columns and directions for sorting. The direction can be either asc or desc.

import { Table } from 'voici.js'

const data = [
  { firstname: 'Marge', lastname: 'Simpson', age: 36 },
  { firstname: 'Homer', lastname: 'Simpson', age: 39 },
  { firstname: 'Peter', lastname: 'Griffin', age: 42 },
  { firstname: 'Lois', lastname: 'Griffin', age: 43 }
];

const config = {
  sort: {
    columns: ['lastname', 'age'],
    directions: ['asc', 'desc']
  }
};

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

The sorted output:

  firstname    lastname    age  
================================
  Lois         Griffin     43   
  Peter        Griffin     42   
  Homer        Simpson     39   
  Marge        Simpson     36   

The columns and directions length must be the same.

💡
sort