如何理解 JavaScript 中的递归?
在本文中,我们将了解与 JavaScript 中递归的理解部分以及实现部分相关的基本细节。
让我们首先了解什么是递归。
递归:
- 我们可以用简单的话正式定义递归,即函数一次又一次地调用自己,直到它不再离开它为止。
- 我们可能会认为递归(非正式地)就像一次又一次地在赛道上奔跑,但每次圈数越来越小。
- 正如我们已经看到的,递归是函数一次又一次地调用自身并最终自行停止,但我们也可能意识到函数不会自行停止的事实。
- 因此,为了让函数在某个时间停止,我们提供了一些调用Base Case的东西,它让任何函数都意识到“是的,该终止了!”。
- 在给出基本情况条件后,我们实现递归部分,在该部分中我们根据所需的结果再次调用函数。
- 递归的一些常见示例包括“斐波那契数列”、“最长公共子序列”、“回文检查”等。
- 我们也可以认为循环形式的递归,其中对于每个用户传递的参数函数被一次又一次地调用,因此根据需要产生它的输出,
现在我们已经了解了与递归及其实现相关的所有基本内容,让我们看看如何通过以下示例将其可视化来实现它 -
示例 1:在此示例中,我们将实现一个数字递减计数器,该计数器将值递减 1,并按降序依次打印所有数字。
Javascript
Javascript
输出:
5
4
3
2
1
例 2:在这个例子中,我们将开发一个代码来帮助我们检查我们传入的整数是偶数还是奇数。通过不断地从 2 中减去一个数字,结果将是 0 或 1。因此,如果它是 0,那么我们的数字是偶数,否则它是奇数。
Javascript
输出:
1 is odd
0 is even
1 is odd