Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何从表单结果中去除isNaN?_Jquery_Calculator_Nan - Fatal编程技术网

Jquery 如何从表单结果中去除isNaN?

Jquery 如何从表单结果中去除isNaN?,jquery,calculator,nan,Jquery,Calculator,Nan,我正在制作一个小计算器。这将允许您输入多达4个数字,但您也可以输入1、2或3个数字。我已经让代码正常工作了,除了当我只输入1、2或3个数字时,对于我没有输入的数字,我会得到一个NaN结果 我该如何摆脱NaN结果 我的jQuery用于拆分输入的表单数据是- var numbers = num4.split(" "); var firstNumber = parseInt(margins[0], 10), secondNumber = parseInt(margins

我正在制作一个小计算器。这将允许您输入多达4个数字,但您也可以输入1、2或3个数字。我已经让代码正常工作了,除了当我只输入1、2或3个数字时,对于我没有输入的数字,我会得到一个NaN结果

我该如何摆脱NaN结果

我的jQuery用于拆分输入的表单数据是-

    var numbers = num4.split(" ");
    var firstNumber = parseInt(margins[0], 10),
        secondNumber = parseInt(margins[1], 10),
        thirdNumber = parseInt(margins[2], 10),
        fourthNumber = parseInt(margins[3], 10);
    console.log(firstNumber, secondNumber, thirdNumber, fourthNumber);

    var shorthand1 = parseInt (firstNumber, 10) * 1;
    var shorthand2 = parseInt (secondNumber, 10) * 1;
    var shorthand3 = parseInt (thirdNumber, 10) *1;
    var shorthand4 = parseInt (fourthNumber, 10) *1;
我只是

shorthand1 + shorthand2 + shorthand3 + shorthand4 
结果显示在页面上的div中

问题是如果我输入“10”而没有输入第四个数字,我会得到一个结果

10 10 10 NaN

我可以检查NaN而不处理结果吗?

您可以使用Javascript
isNaN(value)
函数检查值是否为NaN。

您可以在js中检查isNaN()

请注意,isNaN()函数只检查值的“数值性质”,而不检查值是否是有限的。要检查一个数字是否是有限的,您应该改为使用JavaScript的isFinite()。

函数
isNaN()
确定一个值是否为非法数字(非数字)

如果值为NaN,则此函数返回true,否则返回false

<script type="text/javascript">
document.write(isNaN(123)+ "<br />");
document.write(isNaN("Hello")+ "<br />");
document.write(isNaN(NaN)+ "<br />");
</script> 

编写(isNaN(123)+“
”; 写(isNaN(“你好”)+“
”; 文件。写入(isNaN(NaN)+“
”;
输出:

正确
真的
对于您的情况,您可以进行如下检查:

<html>
<body>
<script type="text/javascript">
if(!isNaN(123)){
document.write(isNaN(123)+ "<br />");
}
if(isNaN("Hello")){
document.write(isNaN("Hello")+ "<br />");
}
</script>
</body>
</html>

如果(!isNaN(123)){
编写(isNaN(123)+“
”; } 如果(伊斯南(“你好”)){ 写(isNaN(“你好”)+“
”; }
如果没有数字或文字,这是否有效?所以,如果他们只输入10而不是10,那么就不会产生10 NaN NaN?无论如何,在您的情况下,parseInt将返回NaN作为空值。看看这个Sudhur是对的-isFinite在NaN上检测并返回false。parseInt返回您找到的NaN。此外,我建议您在拆分之前检查数字数组的长度。如果有人输入“10”,数组将缺少一个元素和数字。length将告诉您这一点。您可以指定填充值,将错误返回给用户,或者以您认为合适的方式处理它。