【问题标题】:How to ask a user for an input and reverse that input如何询问用户输入并反转该输入
【发布时间】:2019-07-13 04:51:28
【问题描述】:
  1. 反转输入数字 // 编写函数 reverseInput():

// * 使用提示询问用户数值。 // * 在用户输入非数字值、空字符串或按下“取消”时结束询问。 // * 以相反的顺序返回输入数字的数组。

//零是有效数字,请不要在零处停止输入。

尝试了一个 do/while 循环,但我能得到的最大数组的长度为 2

let userInput 
let reverseArray = []
do {
    userInput = prompt('Enter a number')
    reverseArray.unshift(userInput)
} while(userInput == /\d*/){
    userInput = prompt('Enter a number')
    reverseArray.unshift(userInput) 
}

【问题讨论】:

    标签: javascript arrays loops


    【解决方案1】:

    你的代码有问题

    • while (userInput === /\d*/) 正在尝试将 userInput 与 /\d*/ 字符串匹配,如果您打算使用它模式来测试您需要使用 test 的数字
    • do{} while(condition) while 之后的块没有意义(这个块允许你第二个提示,即使你在第一次迭代后 while 失败)
    • 你需要有一个条件来避免在reverseArray中添加非数字

    let userInput
    let reverseArray = []
    do {
      userInput = prompt('Enter a number')
      if(/^\d+$/.test(userInput)){
       reverseArray.unshift(+userInput)
      }
    } while (/^\d+$/.test(userInput))
    
    console.log(reverseArray)

    您可以简单地使用原生方法isNaN 来检查userInput 是否为数字

    【讨论】:

      【解决方案2】:

      简单的while 就可以了:

      let userInput = prompt('Enter a number');
      let reverseArray = [];
      while (userInput != null && !isNaN(userInput) ) {
        reverseArray.unshift(+userInput);   
        userInput = prompt('Enter a number');
      } 
      console.log(reverseArray);

      【讨论】:

      • userInput != null && !isNaN(userInput)
      【解决方案3】:

      有一个叫做 isNaN 的函数,它检查数字是否为数字。 这是参考isNaN。这是相同问题的示例代码,你可以看看。

      function reverseInput() {
        const reverseArray = [];
        let number = parseInt(prompt('Enter number'));
      
        while (!isNaN(number)) {
          reverseArray.unshift(number);
          number = parseInt(prompt('Enter number'));
        }
      
        console.log(reverseArray);
      }
      
      reverseInput()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-02
        • 1970-01-01
        • 2014-03-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多