Javascript-программа для проверки наличия символа подсказки в массиве и оповещения об ответе - PullRequest
0 голосов
/ 06 января 2019

Я просто пытаюсь создать очень простую программу, которая получает символ из приглашения, проверяет, находится ли он в массиве, а затем оповещает об ответе. Я нахожусь в раннем обучении и только что нашел новый метод .include, но также пытался с помощью простых операторов if / else. Казалось, что это почти сработало, но просто возвращает один и тот же ответ, независимо от ввода.

var letters = ["a", "e", "i", "o", "u"];

var selection = prompt ("enter a letter")


if (letters.includes("selection") == "true") {
    alert ('yes');
    } 
    else {
    alert ('no');
    };

Тогда раньше я попробовал это, но также не смог заставить его работать:

var vowel = prompt ("enter letter");

var letters = ['a', 'e', 'i', 'o', 'u'];

if (letters.indexOf('letters') !== -1) {
 alert("Yes!");
 }
 else {
 alert("No");
  }

Я уверен, что ответ очень новичок "Дух", но помощь приветствуется, и я пытаюсь использовать простые структуры просто для изучения основ, а не идеальные, творческие вещи, которые я еще не достиг .... спасибо.

Ответы [ 3 ]

0 голосов
/ 06 января 2019

Почему вы передали имя переменной в виде строки вместо переменной ref в аргумент функции indexOf?

замените ваш код следующим:

letters.indexOf(vowel) !== -1

вместо:

letters.indexOf('letters') !== -1
0 голосов
/ 06 января 2019

Необходимо передать переменную selection вместо строки 'selection' в inludes() и избавиться от == "true"

    var letters = ["a", "e", "i", "o", "u"];
    var selection = prompt("enter a letter")

    if (letters.includes(selection)) {
        alert('yes');
    } else {
        alert('no');
    };

Почти был этот. Вместо того, чтобы передавать 'selection' в indexOf(), вам нужно было передать vowel.

    var vowel = prompt("enter letter");
    var letters = ['a', 'e', 'i', 'o', 'u'];

    if (letters.indexOf(vowel) !== -1) {
        alert("Yes!");
    } else {
        alert("No");
    }
0 голосов
/ 06 января 2019

Вы пытаетесь не проверить, существует ли гласная, но вы проверяете полную строку вместо переменной, созданной вашим приглашением. Не делай этого. Проверьте переменную, которую вы создаете.

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

var letters = ["a", "e", "i", "o", "u"];

var selection = prompt ("enter a letter")


if (letters.includes(selection)) {
    alert ('yes');
} else {
    alert ('no');
};

Кроме того, причина, по которой вы терпите неудачу, если == "true", заключается в том, что истинное логическое значение заканчивается на int, а "true" возвращает NaN. Вы не можете конвертировать эту строку в bool.

...