У меня есть компонент React / TypeScript, в котором я пытаюсь отсортировать массив объектов Location по их уличному адресу в порядке возрастания или убывания.
Сейчас у меня есть простая встроенная функция сортировки, которая сравнивает адрес улицы и в зависимости от того, был ли выбор по возрастанию (a> b) или по убыванию (b> a), он сравнивает и возвращает список в указанном порядке.
Непредвиденная проблема, с которой я столкнулся, заключается в том, что так как свойство адреса улицы возвращается в виде строки, я думаю, что числовое значение номера дома сравнивается неправильно, и поэтому мой список возвращается с, казалось бы, случайным образом упорядоченной сортировкой.
Например, в порядке возрастания будет возвращено:
13151 LAKE SHORE DR
2001 ROGER ST S
5101 SHANNON AVE S STE 2B
2001 ROGER S ST STE B2
10520 ITALY S AVE
Где ожидаемый доход, который я представлял бы, был бы всеми адресами, которые начинаются с дома номер 1, затем номер 2, 3 и т. Д.
Вот как мой вид функции выглядит прямо сейчас:
// Function for asccending order
if (sort === 'alphaAsc') {
filteredLocations = filteredLocations.sort((a, b) =>
a.addressLine1 > b.addressLine1 ? 1 : 0
);
}
// Function for descending sort
if (sort === 'alphaDesc') {
filteredLocations = filteredLocations.sort((a, b) =>
b.addressLine1 > a.addressLine1 ? -1 : 0
);
}