Сортировка () не работает правильно для алфавитного списка - PullRequest
0 голосов
/ 15 ноября 2018

Я использую sort() метод для создания Алфавитного списка, но, похоже, он работает неправильно это пример данных, которые я получаю address: " P.O. BOX : 3625, POSTAL CODE : 112, RUWI. ABOVE ELITE JEWELLERY SHOP BUILDING, 2ND" area_id: "27" area_name: "Ruwi" city_name: "Muscat" clinic_hours: "SAT-THU 9:00AM to 1:00PM 5:00PM to 9:00PM,FRI CLOSED" hosp_id: null hospital_name: null id: "132" insurance_companies: "None" lat: "23.59032790" longi: "58.54473540" name: " AL WARDAH MEDICAL & DENTAL CLINIC" phone: "24832011" services: " GENERAL MEDICINE, GYNAECOLOGY, EYE, ENT, SKIN, PAEDIATRICS.,GENERAL DENTAL CARE & SERVICES." spec: "Dentistry,General Practitioner" spec_id: "70,75"

вот код

// sorting data this.Clinics = Data.sort(function(a, b){ return a.name.localeCompare(b.name); })

enter image description here

введите описание изображения здесь

1 Ответ

0 голосов
/ 15 ноября 2018

localeCompare по умолчанию чувствительна к регистру, заглавные буквы идут перед строчными.

localeCompare

Вы можете передать объект опций, который устанавливает сравнение на base, поэтому a==A, но также требует языковой стандарт,

return a.name.localeCompare(b.name, 'en', {'sensitivity': 'base'});

или вы можете вручную toLowercase или toUppercase свои строки в функции сравнения

return a.name.toLowercase().localeCompare(b.name.toLowercase());

Здесь санация ваших данных перед их сохранением или рендерингом оказывается полезной, но вышесказанное поможет вам, если у вас нулевой контроль над источником.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...