НЕ сравниваются 2 элемента массива

Почему 0 и 1 элемент массива равен false? На вход функции получил строку, затем превратил его в массив. Пытаюсь сравнить нулевой и первый элемент равен false, а 2 и 3 равен true

function strYesORno(str){
    str = str.split('');
    str.sort();
    console.log(str);//["A", "А", "Б", "Б"]

    console.log(str[0] === str[1]);//false
    console.log(str[2] === str[3]);//true

}

strYesORno('АББA');

Ответы (1 шт):

Автор решения: dkotenko

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

console.log(new TextEncoder().encode(str).toString())

Для строки "AАББ" будет вывод:

"65,208,144,208,145,208,145"

Стоит помнить, что буквенные символы в UTF-8 имеют размер 2 байта, поэтому на каждый символ в массиве приходится 2 числа

→ Ссылка