#javascript #compare
Вопрос:
Я делаю маленького бота на javascript, который должен определять, что я пишу, и давать ответ. В этом случае эта команда «look» имеет несколько аргументов/параметров, таких как a, b и c. Я хочу получить утвердительный ответ только в том случае, если аргумент/параметр, о котором я говорю, находится внутри «взгляда». И отрицательный, если это не так. Я догадался, что это делается с помощью «если», но я не могу понять, как это так.
Пример… Константа с ее аргументами/параметрами:
const hi = [ 'a', 'b, 'c' ] // This has worked for me before.
Что я на самом деле ожидаю от нее услышать:
look a
if (args[0] == "hi") return reply('Done, its there! :D')
if (!args[0] == "hi") return reply('Its not there. I cant make magic things.')
Если я скажу «смотри z», она должна сказать второй ответ.
Но по какой-то причине (очевидно, я делаю что-то не так) на обоих она ничего не делает и продолжает выполнять следующий код, который у нее есть.
Комментарии:
1.
if (!args[0] == "hi")
должно бытьif (args[0] != "hi")
.2. Но вы должны использовать
else
, когда второе условие противоположно первому.3. На самом деле то, что ты сказал, сработало. Но не так, как ожидалось! Теперь она не игнорирует это. Но это действует только в том случае, если я говорю «привет».
4. Она не смотрит на постоянное «привет», это то, что я имел в виду.
Ответ №1:
Вы проверяете , является ли args[0]
это словом hi
, а не находится ли оно в массиве с таким именем. Так что это сработает только в том случае, если вы напишете look hi
.
Используйте includes()
для проверки, находится ли что-то в массиве, и не ставьте кавычки вокруг имени переменной.
if (hi.includes(args[0])) {
return reply('Done, its there! :D');
} else {
return reply('Its not there. I cant make magic things.')
}