JavaScript sort: как сортировать обычный массив или массив с объектами?

JavaScript sort: как сортировать обычный массив или массив с объектами?

· JavaScript и Снипеты · 1 мин чтения

В этой записи я покажу как можно сортировать (используя метод JavaScript sort) список объектов внутри JavaScript массива или же обычный массив чисел или строк.

Данные для обработки

Допустим у вас есть массив домов и внутри его объекты (города), как на примере ниже:

var homes = [
    {
        "h_id": "3",
        "city": "Москва",
        "zip": "75201",
        "price": "162500"
    }, {
        "h_id": "4",
        "city": "Краснодар",
        "zip": "90210",
        "price": "319250"
    }, {
        "h_id": "5",
        "city": "Ульяновск",
        "zip": "00010",
        "price": "962500"
    }
];

Этот пример я буду использовать для сортировки ниже.

Если допустим, мне нужно сортировать цену в порядке возрастания, то вы можете воспользоваться следующим кодом:

homes.sort(function(a, b) {
    return parseFloat(a.price) - parseFloat(b.price);
});

Я использовал sort() метод, а вот его документация.

Ниже я вырезал официально описание из этой документации:

(…) сортирует элементы массива и возвращает отсортированный массив. Порядок cортировки по умолчанию соответствует порядку кодовых точек Unicode.

Вот еще пару вариантов сортировки с помощью того же способа:

var fruit = ['арбузы', 'бананы', 'Вишня'];
fruit.sort(); // ['Вишня', 'арбузы', 'бананы']

var scores = [1, 2, 10, 21]; 
scores.sort(); // [1, 10, 2, 21]

var things = ['слово', 'Слово', '1 Слово', '2 Слова']; 
things.sort(); // ['1 Слово', '2 Слова', 'Слово', 'слово']