JavaScript 如何理解递归

JavaScript 如何理解递归

在本文中,我们将了解与递归在JavaScript中的理解部分和实现部分相关的基本细节。

让我们首先了解什么是递归。

递归:

  • 简单来说,递归是指函数一次又一次地调用自身,直到没有什么要处理的。
  • 我们可以将递归(非正式地)看作一次又一次地在赛道上奔跑,但每次的圈数都越来越小。
  • 正如我们所见,递归是函数一次又一次地调用自身,并最终停在自身内部,但我们也可以意识到一个事实,函数不会自己停止。
  • 因此,为了让函数在某个时候停止,我们提供了一些调用基本情况 的东西,让任何函数意识到“是的,现在是终止的时候了!”
  • 在给出基本情况条件之后,我们实现递归部分,在其中按需要调用函数。
  • 递归的一些常见示例包括“斐波那契数列”,“最长公共子序列”,“回文检查”等。
  • 我们还可以将递归看作循环形式,其中对于每个用户传递的参数,函数一次又一次地调用,并根据需要产生其输出结果。

现在,我们已经了解了与递归及其实现相关的所有基本内容,让我们通过以下示例来看看如何通过可视化来实现它-

示例1: 在这个示例中,我们将实现一个数字递减计数器,该计数器将值递减一,并按递减顺序一个接一个地打印所有数字。

Javascript

<script>
    let decrementCounter = (number) => {
 
        // Base case condition....
        if(number === 0) return ; 
        console.log(number);
        decrementCounter(number - 1);
    }
    decrementCounter(5);
</script>

输出:

5
4
3
2
1

示例2: 在这个示例中,我们将开发一个代码来帮助我们检查我们传入的整数是偶数还是奇数。通过不断从一个数字中减去2,结果要么是0,要么是1。所以如果结果是0,那么我们的数字是偶数,否则它是奇数。

Javascript

<script>
    let checkNumber = (number) => {
 
        // Two base case conditions.....
        if(number === 0) return (number + " is even");
        if(number === 1) return (number + " is odd");
        return checkNumber(number - 2);
    }
    console.log(checkNumber(5));
    console.log(checkNumber(10));
    console.log(checkNumber(13333));
</script>

输出:

1 is odd
0 is even
1 is odd

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程