Javascript 跳过if-else语句,即使为true

Javascript 跳过if-else语句,即使为true,javascript,Javascript,我有一个javascript的基本表和几行代码,其中比较了两个表中每个表的第一个值。当“else-if”条件为真时,它跳过“else-if”语句,直接转到末尾的“else”。我对这一切都很陌生,所以如果我在某个明显的地方搞砸了,我不会感到惊讶。非常感谢您的帮助 var firstEquation = ['2', 'x', '+', '1', 'y', '=', '8']; var secondEquation = ['3', 'x', '-', '1', 'y', '=', '7']; if

我有一个javascript的基本表和几行代码,其中比较了两个表中每个表的第一个值。当“else-if”条件为真时,它跳过“else-if”语句,直接转到末尾的“else”。我对这一切都很陌生,所以如果我在某个明显的地方搞砸了,我不会感到惊讶。非常感谢您的帮助

var firstEquation = ['2', 'x', '+', '1', 'y', '=', '8'];
var secondEquation = ['3', 'x', '-', '1', 'y', '=', '7'];

if ( firstEquation[1] > secondEquation[1] ) {
    print("Outcome 1");
} else if ( firstEquation[1] < secondEquation[1] ) {
    print("Outcome 2");
} else {
    print("Else");
}
var firstEquation=['2','x','+','1','y','8'];
var Second Equation=['3'、'x'、'-'、'1'、'y'、'='、'7'];
if(第一个等式[1]>第二个等式[1]){
打印(“结果1”);
}else if(第一个等式[1]<第二个等式[1]){
打印(“结果2”);
}否则{
印刷品(“其他”);
}

您确定要使用打印
吗?这是用来将数据发送到纸上的


您的意思可能是
console.log
——它会将输出发送到
控制台
。如果您来自python之类的语言,那么您没有意识到这一点是有道理的。

您正在比较第二个值,要比较第一个值,请使用[0]。
它直接转到最后一个else,因为“x”不小于或大于“x”

JavaScript从0开始计算数组索引。你基本上说:

if ( "x" > "x" ) {
    print("Outcome 1");
} else if ( "x" < "x" ) {
    print("Outcome 2");
} else {
    print("Else");
}
if(“x”>“x”){
打印(“结果1”);
}否则,如果(“x”<“x”){
打印(“结果2”);
}否则{
印刷品(“其他”);
}

由于
“x”
是每个数组中的第二个元素,并且
“x”=“x”
,因此您将始终点击else语句。将数组索引更改为
firstEquation[0]
secondEquation[0]
以比较数组的第一个元素。

请修正缩进,以便我们可以清楚地读取if链。事实上,这可能就是问题所在。这不是一个“如果”的问题。你把elseCan放在我不比较字符串的地方?我对所有事情都很陌生。你不比较第一个值,你比较第二个值,它的
x
在两个第一个值索引中都是0。你需要做的第一件事是学会打开浏览器开发工具控制台(F12)并查找抛出的错误。这些消息将帮助您了解哪些地方存在无效代码问题。是的,我在开始使用python时,曾经做过非常基本的工作,我假设它也能工作。我现在就改,谢谢。这真的与问题无关。OP询问为什么
if
语句的行为如此。无论您使用
print
还是
console.log()
这一行为都将保持不变。我不同意-OPs的问题是他的病情没有“评估”。对于不理解javascript.OP中的
print
函数的实际功能的人来说,一个恰当的错误诊断还说“当'else-if'条件为真时,它跳过'else-if'语句,直接进入结尾的'else'。这意味着他收到了一个条件的输出,即使使用
打印
.Hmm。说句公道话,我一定是看错了。考虑到OP听起来像是他们发现了这个有用的东西(根据第一条评论),我不确定它是否应该被删除……只是交换了一下数字,它工作得很好,我以后会记住这一点。谢谢你。