gpt4 book ai didi

javascript - 使用 IF 和 WHILE 在 JavaScript 中递归

转载 作者:行者123 更新时间:2023-11-30 08:30:19 25 4
gpt4 key购买 nike

我刚刚在 Javascript 递归中发现了一些奇怪的行为。我的代码

var temp1 = function(maxLength,accNumber) {

if(accNumber.length < maxLength)
{
accNumber = '0'+accNumber;
temp1(maxLength,accNumber);
}
return accNumber;
};
console.log(temp1(5,"23"));

所以在这里我期望输出为“00023”,但它给出的是“023”,这不是预期的。

但是使用 while 循环的相同代码我得到了预期的输出。我不明白为什么。

var temp1 = function(maxLength,accNumber) {

while(accNumber.length < maxLength)
{
accNumber = '0'+accNumber;
temp1(maxLength,accNumber);
}
return accNumber;
};
console.log(temp1(5,"23"));

按预期给我输出“00023”。

最佳答案

事实上,您在 if block 中缺少一个 return 语句:

var temp1 = function(maxLength,accNumber) {

if(accNumber.length < maxLength)
{
accNumber = '0'+accNumber;
return temp1(maxLength,accNumber);
}
return accNumber;
};
console.log(temp1(5,"23"));

因此,如果 if 条件通过,代码不会返回任何内容,这解释了为什么您得到 023 而不是 00023

关于javascript - 使用 IF 和 WHILE 在 JavaScript 中递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38976844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com