Сравнение одинаковых строк даёт false

Всем привет. Во время написания тренажёра для слепой печати на js, столкнулся с тем, что при выполнении программы, переменные, (которые в отладчике браузера выглядят одинаково), дают false при сравнении, и программа, соответственно работает не так, как задумано. Сравнение в строке if (userText == text) {
функции exercise
//block of variables
//Levels. [level number (natural number), [array of letters], how many letters in the exercise's row (natural number)]
let levels = [
[1, ["a", "ф"], 10],
[2, ["ы", "в"], 10],
[3, ["о", "ж"], 10],
[4, ["в", "я", "щ"], 15],
[5, ["г", "й", "т", "м"], 20],
];
//block of functions
function getRandomNumber(max) {
let randomNumber = Math.round(Math.random() * max);
return randomNumber;
}
function generateText(letters, length){
let text = '';
for(let i = 0; i < length; i++) {
let n = getRandomNumber(letters.length - 1);
text += letters[n];
}
return (text);
}
function exercise (level, letters, rowLength) {
while (true) {
alert(`Уровень ${level}. Поставьте мизинец левой руки на букву Ф, безымянный палец - на Ы, средний - на В, указательный - на А. Мизинец правой руки на букву Ж, безымянный палец - на Д, средний - на Л, указательный - на О Запомните расположение пальцев.. А теперь, повторяйте за мной`);
let text = generateText(letters, rowLength);
let userText = prompt(text, '');
if (userText == text) {
alert("Упражнение пройдено");
break;
} else if (userText === undefined || userText === null) {
break;
} else {
alert (`Вы ошиблись при наборе. Попробуйте ещё раз.\nНабранный вами текст: ${userText}\nТребовалось ввести: ${text}`)
}
}
}
//body of the program
alert(`Вас приветствует программа для тренировки слепой печати. Вам будет предложено ${levels.length} уровней для тренировки.`);
let result;
for(let i = 0; i < levels.length; i++) {
result = exercise(levels[i][0], levels[i][1], levels[i][2]);
if(result == null || result == undefined) {
break;
}
}
25 января 2021 в 21:26