@demchenkodenis

Значения в функции передаются в параметры, но сравнения на равенство не срабатывает?

Добрый вечер!
Ниже код, в отладчике значения передаются в параметры, но сравнения на равенство не срабатывает. Подскажите пожалуйста кто в курсе почему?

<meta charset="utf-8">
<script type="text/javascript">
var rightAnswer = 0;
function RightWrongAnwser(RightAnswer, RightUserAnswer){
    if (RightAnswer == RightUserAnswer){
        alert('Поздравляю, вы угадали!');
        rightAnswer++;
    }else alert('Вы не угадали!');
}
RightAnswerPuzzle = ["Крапива", "крапива", "КРАПИВА"];
var userAnswer = prompt('Отгадайте загадку:\nАх, не трогайте меня, обожгу и без огня!');
RightWrongAnwser(RightAnswerPuzzle, userAnswer);
alert('Количество правильных ответов: ' + rightAnswer);
</script>
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ответы на вопрос 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Потому, что происходит сравнение на равенство массив и строку. Но проверка равенства - это не поиск элемента в массиве. Надо проверять наличие значения в массиве:
if (RightAnswer.includes(RightUserAnswer)) {
Правильнее же вообще не использовать массив, а просто приводить ответ к нижнему регистру:
var rightAnswer = 0;
function RightWrongAnwser(RightAnswer, RightUserAnswer){
    if (RightAnswer === RightUserAnswer){
        alert('Поздравляю, вы угадали!');
        rightAnswer++;
    }else alert('Вы не угадали!');
}
var userAnswer = prompt('Отгадайте загадку:\nАх, не трогайте меня, обожгу и без огня!');
// здесь не хватает проверки того, что была нажата кнопка "отмена"
RightWrongAnwser('крапива', userAnswer.toLowerCase());
alert('Количество правильных ответов: ' + rightAnswer);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы