В этой записи я покажу как можно сортировать (используя метод 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 Слова', 'Слово', 'слово']