检查几个值是数字

问题描述 投票:1回答:4

我做一个简单的二次方程的应用程序,用户应输入三个数第一:A,B和C。

如果所有的输入值的数字,不幸的是,我写的功能无法正常工作的第一步就是检查。我怎么可以重写我的功能,所以它CONSOLE.LOG“输入有效数据”如果输入值不是数字。

Here is my code: 

const a_number = parseFloat(prompt("Please, enter a-number", '0'));
const b_number = parseFloat(prompt("Please, enter b-number", '0'));
const c_number = parseFloat(prompt("Please, enter c-number", '0'));
console.log(a_number, b_number, c_number);
ValidInput(a_number, b_number, c_number);

function ValidInput (a, b, c) {
    if (a || b || c) {
        return 
    } else {
        console.log('Invalid input data');
    }
}
javascript
4个回答
3
投票

可以使用是isNaNtypeof功能:

 function ValidInput (a, b, c) {
    if (isNaN(a) || isNaN(b) || isNaN(c)) {
       console.log('Invalid input data');
    } else {
       return
    }
  }

2
投票

你可以写你的验证功能如下:

function ValidInput(a, b, c) {
    var argArr = Array.from(arguments);
    return !argArr.some(isNaN);
}

1
投票

使用isNaN

const a_number = parseFloat(prompt("Please, enter a-number", '0'));
const b_number = parseFloat(prompt("Please, enter b-number", '0'));
const c_number = parseFloat(prompt("Please, enter c-number", '0'));
console.log(a_number, b_number, c_number);
ValidInput(a_number, b_number, c_number);

function ValidInput (a, b, c) {
    if (isNaN(a) || isNaN(b) || isNaN(c)) {
       console.log('Invalid input data');
    } else {
        // do something
    }
}

你要知道,你的代码的工作,即使你输入一些东西,以数字开头,然后有一些非数字字符。例如,如果你键入5.5somethingelseparseFloat取号,直到遇到一个非数字的值。它得到5.5


0
投票

你也可以添加参数你想测试一个数组和使用someisNaN

ValidInput = (a, b, c) => ![a,b,c].some(isNaN);

例如:

ValidInput = (a, b, c) => ![a, b, c].some(isNaN);

if (!ValidInput(1, "a", 3)) {
  console.log('Invalid input data');
}
© www.soinside.com 2019 - 2024. All rights reserved.