简化我的isNaN函数中的两个输入变量JavaScript

Simplify my isNaN function for two input variables - JavaScript

本文关键字:两个 输入 JavaScript 变量 我的 isNaN 函数      更新时间:2023-09-26

我有两个变量,我正在通过两个提示获取。一个是startNum,另一个是rangeNum。我试图错误地捕捉它,这样如果它们不是正数,它就会重新提示用户,直到给出一个正值。目前,我通过运行isnan for each vaible来完成这项工作,但我想知道我是否可以只使用一个功能来检查输入的数字是否为正数的两个提示,如果不是,它会向用户重新提示正确的提示。提前感谢您的帮助/回答。

function isPosNum() {
    startNum = parseInt(prompt("Please enter a positive starting value"));

    if (isNaN(startNum)) {
        return NaN;
    } else if (startNum < 0) {
        console.log('failed');
        alert('That is not a positive number. Please try again and enter a positive number.');
        return "negative";
        isPosNum();
    } else if ( startNum > 0) {
        console.log('worked');
        //push initial value to the array
        numArray.push(startNum);
        //enterRange();
        return "positive";
    } else {
        return "zero";
    } 
    function enterRange() {
        rangeNum = parseInt(prompt("Please enter a number to determine the range of values."));
        if (isNaN(rangeNum)) {
            return NaN;
        } else if (rangeNum < 0) {
            console.log('failed');
            alert('That is not a positive number. Please try again and enter a positive number.');
            return "negative";
            enterRange();
        } else if ( rangeNum > 0) {
            console.log('worked');
            //push initial value to the array
            //collatz();
            return "positive";
        } else {
            return "zero";
        }
    }
}

多亏了deamentiaemundi的回答,我才得以使代码正常工作。这是我给那些想看的人的最后代码。

function getStartNum(){
   startNum = parseInt(prompt('Please enter a starting number greater than 0.'));
   if(!isPosNum(startNum)){
      alert("error! That is an incorrect value. Please renter an appropriate positive value.");
      getStartNum();
   } else {
    getRangeNum();
   }
}
function getRangeNum(){
   rangeNum = parseInt(prompt('Please enter a range value greater than 0'));
   if(!isPosNum(rangeNum)){
      alert("error! That is an incorrect value. Please renter an appropriate positive value.");
      getRangeNum();
   }
   // and so on
}
function isPosNum( number ) {
    if (isNaN( number )) {
        return false;
    } else if (number < 0) {
        return false;
    } else if (number == 0) {
        return false;
    } else {
        return true;
    }
}

生成一个函数checkRange(number),该函数将数字作为参数,并根据该数字返回truefalse。第二个功能是有提示的功能

function getNumbers(){
   startNum = parseInt(prompt('Please enter a number'));
   if(!checkRange(startNum)){
      alert("error!");
      getNumbers();
   }s
   rangeNum = parseInt(prompt('Please enter a range'));
   if(!checkRange(rangeNum)){
      alert("error!");
      getNumbers();
   }
   // and so on
 }