На этом шаге мы рассмотрим особенности использования встроенного метода sort().
Для выполнения фактической сортировки можно использовать встроенный в JavaScript метод .sort(). Он выполняет сортировку массива без создания его копии и может принимать функцию сравнения в качестве аргумента. Эта функция сравнивает два элемента массива и должна возвращать положительное или отрицательное число в зависимости от того, какой элемент массива должен следовать раньше в отсортированном массиве.
Для примера возьмем простой массив чисел:
var arr = [52, 97, 3, 62, 10, 63, 64, 1, 9, 3, 4];
Мы можем отсортировать этот массив, вызвав метод arr.sort(). В результате элементы массива будут упорядочены следующим образом:
[1, 10, 3, 3, 4, 52, 62, 63, 64, 9, 97]
Как видим, по умолчанию элементы массива сортируются в лексикографическом (алфавитном) порядке. Однако в данном случае предпочтительнее было бы отсортировать элементы в числовом порядке. Для этого мы можем передать методу .sort() функцию сравнения:
arr.sort(function(a,b) { if (a < b) return -1; if (a > b) return 1; return 0; });
Эта функция возвращает отрицательное число, если первым должен следовать элемент а, положительное число, если первым должен следовать элемент b, и ноль, если порядок следования элементов не имеет значения. С помощью такой функции сравнения метод .sort() сможет расположить элементы в требуемом порядке:
[1, 3, 3, 4, 9, 10, 52, 62, 63, 64, 97]
На следующем шаге мы рассмотрим использование функции сравнения для сортировки строк таблицы.