【问题标题】:Simplify my isNaN function for two input variables - JavaScript为两个输入变量简化我的 isNaN 函数 - JavaScript
【发布时间】:2015-11-15 01:30:42
【问题描述】:

我有两个变量,我正在通过两个提示。一个是 startNum,另一个是 rangeNum。我试图错误地捕捉它,以便如果它们不是正数,它将重新提示用户,直到给出正值。目前我通过为每个变量运行一个 isnan 来实现这个工作,但我想知道我是否可以只有一个函数来检查两个提示输入的数字是否为正,如果不是,它会向用户重新提示正确的提示。提前感谢您的任何帮助/答案。

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;
    }

}

【问题讨论】:

    标签: javascript function prompt


    【解决方案1】:

    创建一个函数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
     }
    

    【讨论】:

    • 非常感谢您的帮助,由于某种原因,我花了一些时间来实施,但我成功了
    猜你喜欢
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    相关资源
    最近更新 更多