js递归函数详解,js编写递归函数,在这篇文章中,你都能收获到如何用 JavaScript 编写递归函数!本文旨在通过分解和单步执行递归 JavaScript 函数来学习和理解它的工作原理。
根据您的 JavaScript 水平,您可以随意跳过本文。如果您是 JavaScript 新手,我建议您阅读整篇文章,因为涵盖的主题将导致编写递归函数(将其视为学习先决条件)。
这是本文中涵盖的完整递归 JavaScript 函数:
function flattenRecursive(arr) { return arr.reduce( (consolidated, child) => { if (Array.isArray(child)) { consolidated.push(...flattenRecursive(child)); } else { consolidated.push(child); } return consolidated; }, [], ); } const yay = [1, 2, [3, [4, [5, [6, [[[[[7], [8, 9]]]]]]], 10]]]; console.log(flattenRecursive(yay)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
什么是递归
那么,什么是递归?MDN 网络文档解释说, “函数调用自身递归的行为用于解决包含较小子问题的问题。递归函数可以接收两个输入:基本情况(结束递归)或递归情况(恢复递归)。 “
何时使用递归
引用丹:
当我们需要迭代一个相互连接的元素(称为节点)的结构时,递归真的很闪耀在执行过程中产生许多分支。
我们将在本文后面进一步了解它的适用性。
了解功能
在 Dan 向我们展示如何创建递归函数之前,让我们首先分解并理解所有的移动部分。
作为一名自学成才的开发人员,我知道重写别人的代码、让它工作并感觉良好是什么感觉。直到您意识到您实际上并不了解它是如何工作的并且难以自己编写代码。
Dan 的递归函数由以下部分组成:
减少方法
箭头功能
if 和 else 语句
isArray 方法
数组推送方法
传播算子
JavaScript 数组
因此,在我们学习如何编写递归函数之前,让我们了解构建它所需的每个部分。
JavaScript 数组 reduce()
MDN 网络文档解释说reduce() 方法是一种迭代方法。它以索引升序对数组中的所有元素运行一个“reducer”回调函数,并将它们累积成一个值。
const numbers = [1,2,3,4,5]; const numbersReduced = numbers.reduce((total, currentValue) => { return total += currentValue; }, 0); console.log(numbersReduced); 15
在上面的示例中,数字数组中的数字 1、2、3、4 和 5 减少为值 15,如下所示:
1+0 = 1 2+1 = 3 3+3 = 6 4+6 = 10 5+10 = 15
在 reduce 方法中,初始值是可选的。在上面的示例中,我们将初始值设置为 0。
了解如何在 reduce 方法中设置初始值对于 Dan 的递归函数至关重要;他将初始值设置为一个空数组。
本文地址:IT问答频道 https://www.eeeoo.cn/itwenda/903307.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!