我有一个用JS编写的程序。它比较数字为4的函数的输出。但是,似乎无法正确比较。
var myStringNotValidated = "3T-4T";
var notValidate = myStringNotValidated.substring(3, 4);
if(notValidate === 4)
{
console.log("Value1");
}
else
{
console.log("null");
}
//OUTPUT IS NULL, WHICH IDEALLY SHOULD BE "Value1"
任何人都可以指导我在哪里犯错吗?
答案 0 :(得分:2)
您陷入了大多数JS开发人员所犯的相同错误!
JS中===和==之间有区别。 (Difference between == and === in JavaScript)。因此,当您将“ 4”与4进行比较时,它会将(字符串4)与(数值4)进行比较,从而返回else条件。
解决方案:只需将===替换为==
var myStringNotValidated = "3T-4T";
var notValidate = myStringNotValidated.substring(3, 4);
if(notValidate == 4)
{
console.log("Value1");
}
else
{
console.log("null");
}
答案 1 :(得分:1)
这取决于您是否要检查notValidate是否为字符串:
var myStringNotValidated = "3T-4T";
var notValidate = myStringNotValidated.substring(3, 4);
if(notValidate === "4") // Change here
{
console.log("Value1");
}
else
{
console.log("null");
}
如果要检查notValidate是否为数字,请使用 parseInt():
var myStringNotValidated = "3T-4T";
var notValidate = parseInt(myStringNotValidated.substring(3, 4)); // Change here
if(notValidate === 4)
{
console.log("Value1");
}
else
{
console.log("null");
}
答案 2 :(得分:1)
您的条件是否错误,if(notValidate === 4)
将4作为字符串检查。您可以使用if(notValidate=='4')
或将其转换为数字并检查。
答案 3 :(得分:1)
这是因为===比较值和类型。在您的程序中,noValidate包含一个值为4的值,但其类型为字符串,并且您将其与类型为number的4进行比较。
您可以使用==或键入noValidate进行编号。
var myStringNotValidated = "3T-4T";
var notValidate = Number(myStringNotValidated.substring(3, 4));
console.log(typeof notValidate);
if(notValidate === 4)
{
console.log("Value1");
}
else
{
console.log("null");
}
答案 4 :(得分:1)
您正在将字符串(“ 4”)与int类型(4)进行比较。比较之前需要将其转换为整数。
var myStringNotValidated = "3T-4T";
var notValidate = parseInt(myStringNotValidated.substring(3, 4));
if(notValidate === 4)
{
console.log("Value1");
}
else
{
console.log("null");
}
答案 5 :(得分:1)
尝试一下:
var myStringNotValidated = "3T-4T";
var notValidate = myStringNotValidated.substring(3, 4);
if(notValidate === "4")
{
console.log("Value1");
}
else
{
console.log("null");
}
答案 6 :(得分:0)
由于您正在与Series.addPoint
进行严格比较(值和类型),因此必须将其转换为Number。否则,请使用===
(仅输入值而不是类型)。
==