0
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?";
    }
}

基本上我想要它,而不是输入是或否。用户将键入重置,它将返回到“级别 0”

我试过了:

    if (msg === "reset") {
    level = 0;
}
4

2 回答 2

0

在这种情况下,我相信最好包含一个 while 循环。

while(msg === "reset"){level = 0};
于 2021-10-12T03:17:18.720 回答
0

如果您将 if-check for reset 放在顶部,那么您已经正确完成了它,而您只是忘记了您建议的解决方案中的 return?

如果您在 if-check 中不包含 return 语句,则该函数将继续执行,因此它将运行下一个 if 检查,该检查与级别 0 匹配,并且它将假定“reset”是用户的名称。

所以如果你包括

if(msg === "reset"{
 level = 0
 return
}

它应该可以正常工作,您可以将退货留空或包含一条消息。我包含了一个 JS fiddle,它实际上是您的代码,带有固定的 if 检查:https ://jsfiddle.net/5tu7c20n/

于 2021-10-12T09:10:22.787 回答