Javascript Codecademy语法错误意外标记else

Javascript Codecademy语法错误意外标记else,javascript,debugging,Javascript,Debugging,所以我在做我的课程的JS编码,我在做石头剪纸的事情,我也看过其他的主题,但据我所知,我没有放错分号。你能告诉我怎么了吗 var compare = function(choice1, choice2){ if(choice1 === choice2){ return "The result is a tie!"; }else if(choice1 === "rock"){ if(choice2 === "scissors"){ return "rock wins

所以我在做我的课程的JS编码,我在做石头剪纸的事情,我也看过其他的主题,但据我所知,我没有放错分号。你能告诉我怎么了吗

var compare = function(choice1, choice2){

if(choice1 === choice2){
    return "The result is a tie!";
}else if(choice1 === "rock"){
    if(choice2 === "scissors"){
        return "rock wins";
    }else{
        return "paper wins";
}else if(choice1 === "paper"){
    if(choice2 === "rock"){
        return "paper wins";
    }else{
        return "scissors wins";
    }
}
}
}

看起来你把支架弄乱了:

var compare = function(choice1, choice2){
    if(choice1 === choice2){
        return "The result is a tie!";
    }else if(choice1 === "rock"){
        if(choice2 === "scissors"){
            return "rock wins";
        }else{
            return "paper wins";
        } // this was missing
    }else if(choice1 === "paper"){
        if(choice2 === "rock"){
            return "paper wins";
        }else{
            return "scissors wins";
        }
    }
}

如果出现以下情况,则在else后面加上else:

else{
    return "paper wins";
}else if(choice1 === "paper"){
if(choice2 === "rock"){
    return "paper wins";
}

另一方面,Codecademy有时不接受正确的答案,但不允许作为可接受的答案,因为有时需要严格/特定的语法。你应该看看他们的Q/a部分。显然是大括号出了问题。我把它回滚了,因为你的编辑,而缩进正确地破坏了可读性。缩进是逻辑上应该是这样的-只缺少一个}。@vahind是的,这段代码是不正确的,但有时Codecademy不接受正确的答案,但不允许作为可接受的答案,因为有时需要严格的/特定的语法。如果Andrew相信他的代码是正确的(他对此并不确定),那么Codecademy的Q/A部分将是除了s.O之外的一个很好的资源。当你试图理解代码背后的意图时,很明显A}缺失了。否则,产生的逻辑就没有意义了。