我有一个函数,如果pan.cost > 0
必须采取不同的行动。
所以,让我们说curPos = 3
和pan.cost = -1
现在当我这样做时,无论如何,if(curPos + 1 === 5 || 30)
总是被使用,即使curPos + 1
是2,3,4,6等(长pan.cost < 0
)
现在我已将console.log(curPos + 1)
放在else if-statement
内,并且还说它不符合要求。
function action(curPos)
{
var pan = panel[curPos];
if(pan.cost > 0)
{
}
else if(curPos + 1 === 5 || 39)
{
console.log(curPos + 1);
}
else if(curPos + 1 === 3)
{
console.log("should be here");
}
}
答案 0 :(得分:1)
该行
curPos + 1 === 5 || 39
始终评估为真实,因为它被读取:
(curPos + 1 === 5) || 39
和39
是一个真正的价值。
答案 1 :(得分:1)
if(curPos + 1 === 5 || 39)
将始终评估为true。看看你或管道之后的部分。 if(39)
永远都是真的。
答案 2 :(得分:1)
|| 39
将始终返回true并且pan.cost
不存在。
答案 3 :(得分:1)
试试这个:
function action(curPos)
{
var pan = panel[curPos];
var newCurPos = (curPost + 1);
if(pan.cost > 0)
{
}
else if(newCurPos === 5 || newCurPos === 39)
{
console.log(newCurPos);
}
else if(newCurPos === 3)
{
console.log("should be here");
}
}