在本教程中,您将借助示例了解 JavaScript 中的递归。
递归是一个调用自身的过程。调用自身的函数称为递归函数。
递归函数的语法是:
function recurse() {
// function code
recurse();
// function code
}
recurse();
这里,recurse() 函数是递归函数。它在函数内部调用自己。
JavaScript中递归的工作原理
递归函数必须有停止调用自身的条件。否则,该函数将被无限期调用。
一旦满足条件,函数将停止调用自身。这被称为基本条件。
为了防止无限递归,可以使用 if…else 语句(或类似方法),其中一个分支进行递归调用,另一个不进行递归调用。
因此,它通常看起来像这样。
function recurse() {
if(condition) {
recurse();
}
else {
// stop calling recurse()
}
}
recurse();
递归函数的一个简单示例是将值倒数到 1。
// program to count down numbers to 1
function countDown(number) {
// display the number
console.log(number);
// decrease the number value
const newNumber = number - 1;
// base case
if (newNumber > 0) {
countDown(newNumber);
}
}
countDown(4);
输出
4
3
2
1
在上面的程序中,用户在调用函数时传递一个数字作为实参。
在每次迭代中,数值将减少1,并调用函数 countDown(),直到数值为正。这里,newNumber>0 是基本条件。
这种递归调用可以通过以下步骤进行解释:
countDown(4) prints 4 and calls countDown(3)
countDown(3) prints 3 and calls countDown(2)
countDown(2) prints 2 and calls countDown(1)
countDown(1) prints 1 and calls countDown(0)
当数字达到 0 时,满足基本条件,不再调用该函数。
// program to find the factorial of a number
function factorial(x) {
// if number is 0
if (x === 0) {
return 1;
}
// if number is positive
else {
return x * factorial(x - 1);
}
}
const num = 3;
// calling factorial() if num is non-negative
if (num > 0) {
let result = factorial(num);
console.log(`The factorial of ${num} is ${result}`);
}
输出
The factorial of 3 is 6
当您使用正整数调用函数 factorial() 时,它将通过减少数字来递归调用自己。
这个过程一直持续到数字变为 1 为止。然后当数字达到 0 时,返回 1。
用递归计算阶乘
这个递归调用可以通过以下步骤来解释:
factorial(3) returns 3 * factorial(2)
factorial(2) returns 3 * 2 * factorial(1)
factorial(1) returns 3 * 2 * 1 * factorial(0)
factorial(0) returns 3 * 2 * 1 * 1
上一教程 :JS Hoisting 下一教程 :JS Object
[1] Parewa Labs Pvt. Ltd. (2022, January 1). Getting Started With JavaScript, from Parewa Labs Pvt. Ltd: https://www.programiz.com/javascript/recursion
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/zsx0728/article/details/124208629
内容来源于网络,如有侵权,请联系作者删除!