提示一个请求,根据条件重新赋值

Prompt a request and reassign the value according to condition

我正在使用 Javascript/Node.js

我想请用户输入一个数字。 我想检查它的一些条件:它不应该是一个字符串,它应该是一个大于 25 的数字。直到满足条件,应该提示“输入数字...”的问题。 当条件满足时,退出循环并赋值给“P”的新值。

循环工作正常,但是当循环结束并且 i console.log(p) 时,值没有更新。如果 i console.log(a) 在循环内,则值被正确记录。 我做错了什么?

    let p = prompt('Input a number => ');
const checkP = (a) => {
  while (isNaN(a%2) || a > 25) {
    a = prompt('Input a number or a number less than 25 => ');
  }
};
checkP(p);
console.log(p);

您正在修改传递参数的变量 a,因此它仅在 checkP 函数内部可用,也不能改变 p

改变这个:

let p = prompt('Input a number => ');
const checkP = (a) => {
    while (isNaN(a % 2) || a > 25) {
        a = prompt('Input a number or a number less than 25 => ');
    }
};
checkP(p);
console.log(p);

为此:

let p = prompt('Input a number => ');
const checkP = () => {
    while (isNaN(p % 2) || p > 25) {
        p = prompt('Input a number or a number less than 25 => ');
    }
};
checkP();
console.log(p);