> For the complete documentation index, see [llms.txt](https://voici.larswaechter.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://voici.larswaechter.dev/examples/sorting.md).

# Sorting

Sort the table by given columns and directions.

You can sort the table by multiple columns and directions. Using the [`sort`](/reference/api-reference/sort.md) option provide an array of `columns` and `directions` for sorting. The direction can be either `asc` or `desc`.&#x20;

```javascript
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   
```

{% hint style="warning" %}
The `columns` and `directions` length must be the same.
{% endhint %}
