localeCompare
по умолчанию чувствительна к регистру, заглавные буквы идут перед строчными.
localeCompare
Вы можете передать объект опций, который устанавливает сравнение на base
, поэтому a==A
, но также требует языковой стандарт,
return a.name.localeCompare(b.name, 'en', {'sensitivity': 'base'});
или вы можете вручную toLowercase
или toUppercase
свои строки в функции сравнения
return a.name.toLowercase().localeCompare(b.name.toLowercase());
Здесь санация ваших данных перед их сохранением или рендерингом оказывается полезной, но вышесказанное поможет вам, если у вас нулевой контроль над источником.