​Сортировка массивов в JavaScript

Сортировка массивов в JavaScript делается через метод array.sort()

Сортировка массива в алфавитном порядке:

 var myarray=["Bob", "Bully", "Amy"]
 myarray.sort() // Массив становится ["Amy", "Bob", "Bully"]

А теперь, посмотрите на то, что случится когда мы вызовем array.sort() на массиве из чисел:

 var myarray=[7, 40, 300]
 myarray.sort() //Теперь он становится таким [300,40,7]

Хотя 7 в численном порядке меньше, чем 40 или 300, в лексикографическом порядке, семёрка больше, таким образом она оказывается правее всех в отсортированном массиве. Всегда имейте в виду, что по-дефолту array.sort() сортирует элементы в лексикографическом порядке.

array.sort() допускает дополнительные параметры в виде функций
Формат такой функции будет выглядеть таким образом:

 function sortfunction(a, b){
  //Тут сравнивается a и b, и возвращается -1, 0 или 1.
  //Если возвращается -1, то число смещается влево
  //Если вернется 1, то число смещается вправо
  //Если 0, то остается на месте
 }
 array.sort(sortfunction)

Когда такая функция передаётся в array.sort(), элементы массива сортируются, основываясь на взаимосвязи между ними.