let level = 0;
let usersName;
let path;
const getBotReply = (msg) => {
if (level === 0) {
level = 1;
usersName = msg;
return "Chur " + usersName + ". Do you live in Raglan?";
}
if (level === 1) {
level = 2;
if (msg === "yes") {
path = "left-yes";
return "Do you know how to surf?";
}
if (msg === "no") {
path = "right-no";
return "Are you from Auckland?";
}
}基本上,我想要它,而不是键入yes或no。用户将键入reset,它将返回到"level 0“
我试过了:
if (msg === "reset") {
level = 0;
}发布于 2021-10-12 03:17:19
在这种情况下,我认为最好包含一个while循环。
while(msg === "reset"){level = 0};发布于 2021-10-12 09:10:23
如果您将if-check for reset放在顶部,那么您已经正确地完成了,并且您只是忘记了您建议的解决方案中的一个返回?
如果在if-check中没有包含返回字符串,函数将继续运行,因此它将运行下一个If check,匹配级别为0,并假定"reset“是用户名。
因此,如果您包含
if(msg === "reset"{
level = 0
return
}它应该可以很好地工作,您可以将返回留空或包含一条消息。我包含了一个JS小提琴,它实际上是您的代码,带有修复的if check:https://jsfiddle.net/5tu7c20n/
https://stackoverflow.com/questions/69534364
复制相似问题