为什么我的其他条件正在执行?

时间:2017-07-13 01:42:08

标签: javascript arrays list arraylist javascript-events

我是java脚本的新手,我正在制作一个小聊天机器人,没有什么可幻想的。但我陷入了一个问题,如果我输入一些匹配数组内部值的东西,它将执行if和else条件。



function readInput(){
var words = ["hello", "hi", "holis", "holus"];
var userInput = document.getElementById("userInput").value.toLowerCase();
console.log(" Users says: " + userInput);

for(var i = 0; i < words.length; i++){
    if(userInput == words[i]){
      console.log("bot says: " + "hi!");

    }else {
      console.log("bot says " + "i dont understand");
    }
  }
  //clean  user input
  var clearInput = document.getElementById("userInput").value="";
}
&#13;
<input type="text" id="userInput" value="">

    <button type="button" name="button" onclick="readInput()">Say</button>
&#13;
&#13;
&#13;

任何帮助都将是apreciated

1 个答案:

答案 0 :(得分:0)

修改你的for语句。

定义一个变量以检查脚本是否知道该单词。在for语句中,如果输入的单词在words中,则将变量设置为true然后中断。最后,如果check变量为false,则表示我不明白:

var check = false
for (var i = 0; i < words.length; i++) {
    if (userInput == words[i]) {
        console.log("bot says: " + "hi!");
        check = true;
        break
    }
}
if (!check) {
    console.log("bot says " + "i dont understand");
}