gpt4 book ai didi

javascript - 递归返回函数调用——理论re return语句

转载 作者:行者123 更新时间:2023-12-01 03:15:56 24 4
gpt4 key购买 nike

在下面的递归函数中,请注意我们必须如何使用 return之前printArr 。如果我们不使用return ,然后做 printArr(num-1, [...arr, num] ,递归函数的返回值为undefined

我在 Google 和 StackOverflow 上搜索了此特定主题的解释,但找不到答案。有人可以解释一下为什么我们需要使用 return当对函数进行递归调用时,甚至将我定向到我可能错过的 StackOverflow 问题或博客文章。

我认为这可能与调用堆栈有关,但从概念上讲,我很难理解它。

const printArr = (num, arr) => {
if (!num)
return arr

return printArr(num - 1, [...arr, num])
}

const printArr2 = (num, arr) => {
if (!num)
return arr

printArr(num - 1, [...arr, num])
}

// [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
console.log(printArr(10, []))

// undefined
console.log(printArr2(10, []))

最佳答案

在 JavaScript 中,如果您不在函数中执行 return 语句,则返回值将为 undefined

由于您想要返回一个值,因此需要一个 return 语句。

如果满足条件,那么您就有了想要返回的值,因此您返回该值。

如果不满足条件,则需要递归调用该函数并返回结果。

关于javascript - 递归返回函数调用——理论re return语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45536750/

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