# Sorting

You can sort the table by multiple columns and directions. Using the [`sort`](https://voici.larswaechter.dev/reference/api-reference/sort) 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 %}
