即使满足条件,我的else语句也不会执行

问题描述 投票:-1回答:1

所以我正在测试我的代码,当我在输入myFunctionOne的实际字符串之前在主菜单中输入2时,else语句不会打印出console.log(“您需要先输入一个String”);但是我收到一条错误消息,说长度未定义。我想要这样,如果用户选择输入2而没有先在myFuncitonOne中输入字符串,console.log将发出通知,通知他们应该首先输入一个字符串,然后将其返回给var提示1 =提示(“请输入1,2 ,3或退出”)。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");
javascript loops if-statement
1个回答
0
投票

您的prompt2变量在这种情况下永远不会获得值,这就是错误弹出的原因。您应该检查它是否未定义。

更改

if(prompt2.length > 0)

to

if(prompt2 && prompt2.length > 0)
© www.soinside.com 2019 - 2024. All rights reserved.