Почему не работает sort()
не могу понять, почему не работает sort((a, b) => b - a), но когда делаю просто sort() - работает?
function isIsogram(str){
return str.split('').sort((a,b) => a - b);
}
console.log(isIsogram("Dermatoglyphics"));
Ответы (1 шт):
Автор решения: Джонни Кэтсвилл
→ Ссылка
Потому что здесь
a - b
строки преобразуются в числа.
"D" -> NaN
"e" -> NaN
"r" -> NaN
Ваш компаратор всегда возвращает NaN.
Ваши односимвольные строки можно сравнить
(a, b) => a < b ? -1 : a > b ? 1 : 0
или так
(a, b) => a.codePointAt(0) - b.codePointAt(0)
А если нужно сравнивать не по кодам символов, а по языковым правилам, то можно так
(a, b) => a.localeCompare(b)