我是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;
任何帮助都将是apreciated
答案 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");
}