Моя инструкция else не выполняется, даже если условие выполнено - PullRequest
0 голосов
/ 10 октября 2019

Итак, я тестирую свой код, и когда я ввожу 2 в главное меню, прежде чем вводить фактическую строку для myFunctionOne, оператор else не выводит console.log («Сначала необходимо ввести строку»);но вместо этого я получаю сообщение о том, что длина не определена. Я хочу, чтобы, если пользователь решил ввести 2 без предварительного ввода строки в myFuncitonOne, console.log выдаст уведомление о том, что ему следует сначала ввести строку и вернуть их в var prompt1 = prompt ("Пожалуйста, введите 1, 2, 3 или Exit "). ToLowerCase ();

do {
var prompt1 = prompt("Please enter 1, 2, 3, or Exit").toLowerCase();
var prompt2;
var wordsConverted;

function myFunctionOne(input1) {
if (prompt1 == 1) {
    prompt2 = prompt("Please enter a string");

    while (prompt2.length == 0) {
        prompt2 = prompt("You need to enter something");
    }
}
}
   myFunctionOne(prompt2);

function myFunctionTwo() {
if (prompt1 == 2) {
    if(prompt2.length > 0) {

    var words = prompt2.split(" ");
    for(var i = 0; i < words.length; i++){  
        if(words[i].length > 5){
            words[i] += "-bork";
        }else{
            words[i] += "-boink";
            }
        }
    wordsConverted = (words.join(""));

    console.log("String converted");
    myFunctionOne(prompt1);
    }
    else{
    console.log("You need to first enter a String");
    }
 }
 }
 myFunctionTwo();
}
  while (prompt1 != "exit");

1 Ответ

0 голосов
/ 10 октября 2019

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

Измените

if(prompt2.length > 0)

на

if(prompt2 && prompt2.length > 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...