检查几个值是否为数字

时间:2019-02-04 07:16:27

标签: javascript

我正在制作一个简单的二次方程式应用程序,用户应首先输入三个数字: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');
    }
}

4 个答案:

答案 0 :(得分:3)

可能使用的是isNaNtypeof函数:

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

答案 1 :(得分:2)

您可以这样编写valdiator函数:

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

答案 2 :(得分: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.5somethingelse,则parseFloat将采用数字,直到达到非数字值。它得到5.5

答案 3 :(得分: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');
}