Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.10.2020, 00:47
Новичок на форуме
Отправить личное сообщение для kityki Посмотреть профиль Найти все сообщения от kityki
 
Регистрация: 19.10.2020
Сообщений: 3

Как записать 2 приемлемых ответа в условии?
Всем привет,

Задача в общем-то проста: задается вопрос, и пользователь дает ответ либо, например, "Завтра", либо "завтра".

Как записать условие таким образом, чтобы программа как true принимала и тот и другой ответ?

Я пыталась, через ||, но, как оказалось, оно здесь не подходит.

Какие есть варианты записи таких условий? Какие наиболее изящные?

Заранее спасибо
P.S.
Я в js новичок

Код:

<script>

alert('Привет! Давай сыграем в игру!');

let riddle = prompt('Что приходит всегда, но не сегодня?');
let rightAnswer = ('Завтра');

let userAnswer

if (userAnswer == rightAnswer) {
alert('Отлично! Двигаемся дальше!')
} else {
alert('Вышла ошибочка. Ничего, попробуй еще раз!');

}

</script>
Ответить с цитированием
  #2 (permalink)  
Старый 19.10.2020, 01:10
Новичок на форуме
Отправить личное сообщение для kityki Посмотреть профиль Найти все сообщения от kityki
 
Регистрация: 19.10.2020
Сообщений: 3

Поправила код. Я думаю, что есть решение короче, чтобы такие длинные условия не писать, только не знаю, какие.

<script>

alert('Привет! Давай сыграем в игру!');

let riddle = prompt('Что приходит всегда, но не сегодня?');
let rightAnswer1 = ('Завтра');
let rightAnswer2 = ('завтра');


if (riddle === rightAnswer1) {

alert('Отлично! Двигаемся дальше!')

} else if (riddle === rightAnswer2) {

alert('Отлично, двигаемся дальше!')

} else {
alert('Вышла ошибочка. Ничего, попробуй еще раз!');

}

</script>
Ответить с цитированием
  #3 (permalink)  
Старый 19.10.2020, 02:08
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

const isRightAnswer = userAnswer => userAnswer.trim().toLowerCase() === 'завтра';

alert(isRightAnswer(' завтра'));
alert(isRightAnswer('Завтра '));
Ответить с цитированием
  #4 (permalink)  
Старый 19.10.2020, 06:34
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

kityki, || вполне себе подходит, просто писать надо так:
if (riddle === rightAnswer1 || riddle === rightAnswer2)
, а не так
if (riddle === rightAnswer1 || rightAnswer2)
как вы, скорее всего, пытались. Операции в javascript выполняются по порядку, одна за раз.

Но конкретно для решения задачи вариант Nexus, конечно, вернее.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 22.10.2020, 01:02
Новичок на форуме
Отправить личное сообщение для kityki Посмотреть профиль Найти все сообщения от kityki
 
Регистрация: 19.10.2020
Сообщений: 3

спасибо большое!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как записать данные в переменную? unlik9 Общие вопросы Javascript 0 05.04.2018 19:05
Обработка ответа $.post запроса - как в блоке div получить переменную массива NeilDaniels jQuery 63 31.05.2016 13:28
Подскажите как записать массив в базу мусол. wadim Общие вопросы Javascript 6 09.02.2016 16:59
Как получить содержимое <script></script> из полученного ответа vvsh Events/DOM/Window 2 09.07.2009 20:32
как дождаться AJAX ответа scuter Общие вопросы Javascript 3 23.03.2008 05:54