Sorting an array is one of those classic tasks in computer science that’s always good to review once in a while.

If you want to sort an array alphabetically (also known as lexical order) you can use the built-in sort() method.

``````const arr = ['Billy', 'Bob', 'Alice'];

arr.sort(); // ['Alice', 'Billy', 'Bob']
arr.sort().reverse(); // ['Bob', 'Billy', 'Alice']
``````

For an array of integers you need to use the optional `compareFunction` that comes along with `sort()`. It specifies a function that defines the default order. In other words, we need to provide this function ourself.

Given two elements `a` and `b` being compared in `compareFunction`, if the result is less than 0, `a` comes first. If the result is greater than 0, `b` comes first.

Therefore to sort in ascending order we use `a - b` but for descending order we use `b - a`.

``````const numArr = [1, 5, 0, 11, 25, 40];

numArr.sort(); // [0, 1, 11, 25, 40, 5]
numArr.sort((a,b) => a - b); // [0, 1, 5, 11, 25, 40]
numArr.sort((a,b) => b - a); // [40, 25, 11, 5, 1, 0]
``````

Want to improve your JavaScript? I have a list of recommended JavaScript books.