Сортировка массивов в 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(), элементы массива сортируются, основываясь на взаимосвязи между ними.