Сортировка числового массива

В JavaScript сортировку массивов выполняют при помощи метода sort(). Сам метод изменяет исходный массив.

Пример сортировки:

let arr = ['f', 'k', 'j', 'a', 'z', 'd', 'v'];
arr.sort();

console.log(arr);    // → ["a", "d", "f", "j", "k", "v", "z"]

Как видно в примере, метод sort() возвращает массив отсортированный в алфавитном порядке.

 

Проблема возникает когда мы хотим сортировать массивы состоящие из числовых значений.

Например:

console.log([15, 10, 2].sort());    // → [10, 15, 2]

Неправильная сортировка чисел происходит из за того что метод sort сравнивает числа как строки.

 

Для того чтобы sort правильно отсортировал цифровой массив, для этого в метод sort необходимо передать калбек функцию.

Решение для правильной сортировки цифрового массива:

var num =  [10, 2, 15, 7, 1, 3, 28];

num.sort(function (prev, next) {
    return prev - next
});

console.log(num);   // → [1, 2, 3, 7, 10, 15, 28]

 

Тоже самое в синтаксисе ES-6 (стрелочная функция)

let num =  [10, 2, 15, 7, 1, 3, 28];

num.sort((a, b) => a - b);

console.log(num);   // → [1, 2, 3, 7, 10, 15, 28]
Как получить массив из id моделей
массив id Появилась такая задача: нужно получить массив из id последних 10 записей на сайте написанном на Winter CMS. Признаюсь что пришлось потратить какое то время для её решения.
Методы массивов JavaScript
массив Методы массивов в JavaScript и примеры их использования: push, pop, unshift, shift, split, join, slice, splice, reverse, map, filter, reduce, sort, includes ...
Сортировка многомерного массива по значению
Сортировка многомерного массива по значению Решение задачи как отсортировать многомерный массив по значению, чтобы при этом сохранить все ключи элементов массива.
Комментарии 0

*** чтобы писать комментарии.