// * *使用提示符询问用户数值。 // *完成询问用户何时输入非数字值,空字符串或按“取消”。 // *以相反的顺序返回输入数字的数组。
// 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)
}
答案 0 :(得分:4)
您的代码中存在一些问题
while (userInput === /\d*/)
试图将userInput与/\d*/
字符串匹配,如果您打算使用它来测试数字,则需要使用test
do{} while(condition)
后面的while块是没有意义的(即使您在第一次迭代后出现while失败,该块也允许您再次输入第二个提示)
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);