如何要求用户输入并反转输入

时间:2019-07-13 04:51:28

标签: javascript arrays loops

  1. 反向输入数字 //编写函数reverseInput():

// * *使用提示符询问用户数值。 // *完成询问用户何时输入非数字值,空字符串或按“取消”。 // *以相反的顺序返回输入数字的数组。

// P.S.零是有效数字,请不要将输入停止在零上。

尝试执行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) 
}

3 个答案:

答案 0 :(得分:4)

您的代码中存在一些问题

  • 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是否为数字

答案 1 :(得分:2)

有一个名为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()

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