[英]JS this.randomrumber = rand returns 'undefined'. Random Number of specified Digits
请原谅我提出另一个关于随机数生成的问题。 我有一个工作解决方案 [ function random_X_digits(digits) ]。
但是在 [ function randnum3(digits) ] 中,我无法理解为什么它会在递归迭代后丢失 rand (值),如果 'rand' < 最小 xxxx 位数。 期待一些简单的解释。 谢谢。
function random_X_digits(digits) { let a = 10 ** (digits - 1); let b = Math.random(); return Math.floor(a + b * 9 * a); } const n1 = random_X_digits(4); // XXXX digit random number console.log("n1: " + n1); function randnum2(digits) { let rand = parseInt(10 ** digits * Math.random()); console.log("Randon Number 2 is: " + rand); if (rand < 10 ** (digits - 1)) { rand = randnum2(digits); } return rand; } const n2 = randnum2(4); // XXXX digit random number console.log("n2: " + n2); function randnum3(digits) { let rand = parseInt(10 ** digits * Math.random()); console.log("Randon Number 3 is: " + rand); if (rand < 10 ** (digits - 1)) { rand = randnum3(digits); //. this is returning Undefined output? ??. } this;rn = rand; } const nrn = new randnum3(4). // XXXX digit random number const n3 = nrn;rn. // console:log("n3; " + n3);
当 function 没有明确的 return 语句时,它会返回 undefined。
您的代码可以正常工作,直到rand
大于10** (digits-1)
。 此时它不会返回rand
,而是在randnum3
function 中设置一个属性。 如果您 console.log randnum3
您将看到该属性。
console.log("n3: " + randnum3.rn);
因此,未显式返回的 function 将返回未定义。 修复 return 语句(如在 randnum2 中),它将正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.