Если переменная равна значению или другому значению - JavaScript

1

Я пытаюсь написать простой латинский код Pig. Я хочу проверить, является ли первая буква входной строки гласной, если это так, чтобы запустить этот определенный код. Как я могу спросить, равна ли y одному из этих значений.

function pigLatin() {
    var y = prompt("Enter a word:")
    if (y.charAt(0) = a,e,i,o,u) {
        var pigLatin = y + "ay";
        document.getElementById("answer").innerHTML = "Answer is: " + pigLatin;
    } else {
        var wordLength = y.length + 1;
        var pigLatin = y.substring(1, wordLength) + y.charAt(0) + "ay";
        document.getElementById("answer").innerHTML = "Answer is: " + pigLatin;
    }
}
  • 2
    = присваивает, == или === проверяет равенство (кроме неверного синтаксиса a, e, i, o, u)
  • 0
    Пожалуйста, смотрите сравнения равенства
Показать ещё 1 комментарий
Теги:
list
if-statement

2 ответа

8
Лучший ответ
if (y.charAt(0) = a,e,i,o,u) {

...не является действительным.

Пытаться...

if ('aeiou'.includes(y.charAt(0))) {

Ваши проблемы...

  • Строки должны быть указаны, даже если они имеют только один символ.
  • Массив должен быть обернут [ и ] (если не сконструирован с помощью другого средства, например, с конструктором Array)
  • Вы не можете использовать оператор присваивания (=) или любой оператор эквивалентности (== или ===) для автоматической проверки наличия элемента в массиве. Поскольку вы проверяете список отдельных символов, вы можете напрямую использовать String.prototype.includes().

Если пользователь отменяет prompt(), вы также получите null, которое вы не обрабатываете (он будет сбой при упомянутом условии).

  • 1
    Или , может быть , if ('aeiou'.includes(y.charAt(0))) { .
  • 0
    @smarx Еще лучше, я обновлю :)
Показать ещё 3 комментария
0

Во-первых, вам нужно, чтобы буквы были в кавычках в этом

if (y.charAt(0) = a,e,i,o,u)

Во-вторых, используйте === для equals.

В-третьих, вы хотите, чтобы это была одна из гласных "a", "e", "i", "o", "u".

Вы можете сравнить indexOf с char с -1:

if (['a', 'e', 'i', 'o', 'u'].indexOf(y.charAt(0)) !== -1)
//...
  • 0
    in не работает так. Он проверяет наличие ключей в объекте, здесь у вас есть массив символов.
  • 0
    Конечно; который получает индекс .. другой ответ лучше в любом случае.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню