Javascript 尽管有if语句,代码仍在所有循环中运行

Javascript 尽管有if语句,代码仍在所有循环中运行,javascript,ejs,Javascript,Ejs,我在用ejs。无论我的语句返回什么(无论currentGame是什么),我的输出总是12。我尝试过实现break或返回并尝试使用其他循环,如开关盒或while,但没有帮助。 如果我在每个循环中使用console.log,我会得到{1,2,3…12}作为输出 “” “问题是您的代码正在无条件地分配给服务器端x变量,此处: "<%var x%>" "<%for(var i=1; i<=12; i++){%>" if(currentGame === "<%=i%&

我在用ejs。无论我的语句返回什么(无论
currentGame
是什么),我的输出总是12。我尝试过实现
break
返回
并尝试使用其他循环,如
开关盒
while
,但没有帮助。
如果我在每个循环中使用
console.log
,我会得到{1,2,3…12}作为输出

“”

“问题是您的代码正在无条件地分配给服务器端
x
变量,此处:

"<%var x%>"

"<%for(var i=1; i<=12; i++){%>"
if(currentGame === "<%=i%>"){
    "<%x=i;%>" // <===================================
}

"<%}%>"
console.log("<%=x%>")
这就是问题所在。
x
始终是12



但是,从您发布的特定代码中退一步:使用服务器端代码来生成客户端代码几乎从来都不是一个好主意。相反,请分别编写客户端代码和服务器代码,这样就不会出现这种混淆。

问题是您的代码正在分配给服务器端
x
变量无条件地,此处:

"<%var x%>"

"<%for(var i=1; i<=12; i++){%>"
if(currentGame === "<%=i%>"){
    "<%x=i;%>" // <===================================
}

"<%}%>"
console.log("<%=x%>")
这就是问题所在。
x
始终是12


但是,从您发布的特定代码中退一步:使用服务器端代码生成客户端代码几乎从来都不是一个好主意。相反,请分别编写您的客户端代码和服务器代码,这样就不会出现这种混淆。

请在浏览器中显示您得到的结果代码。基于上述内容,我认为这是一种错误一系列的
if(currentGame==“1”){/code>和
if(currentGame==“2”){/code>等,一直到12。请在浏览器中显示您得到的结果代码。基于以上,我希望它是一系列
if(currentGame==“1”){/code>和
if(currentGame==“2”){/code>等,一直到12。
var x

for(var i=1; i<=12; i++){
    x=i;
}