专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

js递归函数详解,js编写递归函数

来源:小易整编  作者:小易  发布时间:2023-02-23 05:04
摘要:js递归函数详解,js编写递归函数,在这篇文章中,你都能收获到如何用JavaScript编写递归函数!本文旨在通过分解和单步执行递归JavaScript函数来学习和理解它的工作原理。根据您的JavaScript水平,您可以随意跳过本文。如果...

js递归函数详解,js编写递归函数,在这篇文章中,你都能收获到如何用 JavaScript 编写递归函数!本文旨在通过分解和单步执行递归 JavaScript 函数来学习和理解它的工作原理。

js递归函数详解,js编写递归函数

根据您的 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 的递归函数至关重要;他将初始值设置为一个空数组。


本文地址:百科问答频道 https://www.neebe.cn/wenda/903307.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • JS 字符串转数组

    JS 字符串转数组

    JS中,将一个字符串转置为数组,使用到的方法是split(),通过使用split()方法,可以轻松的将一个字符串转换为数组操作方法01新建一个HTML文档,用于承载JS02...

  • doT.js是什么

    doT.js是什么

    doT.js是一个JavaScript模板框架,在web前端使用dot.js作为模板引擎,主要的用途就是,在写好的模板上,放进数据,生成含有数据的html代码。doT.js是一个JavaScript模板框架,在web前端使用do...

  • JsRender是什么

    JsRender是什么

    JsRender是jQuery模板,专为高性能的纯字符串渲染而优化,无需DOM和其他jQuery依赖。允许定义一次样板结构并重复使用它来动态生成HTML。JsRender是jQuery模板,专为高性能的纯字符串渲染而优...

  • js代码大全,常用js代码代码示例

    js代码大全,常用js代码代码示例

    js代码大全,常用js代码代码示例做为开发过React/ReactNative的工程师,在刚开始接触Flutter开发的时候,一定会遇到这种情况,对于某个功能你能很熟练使用特定Javascript语法去完成,但是对于Flutter开发,对应...

  • jstl是什么,JSP标准标签库jstl

    jstl是什么,JSP标准标签库jstl

    jstl是什么,JSP标准标签库jstlJSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。除了这些,它还提供了一...

  • js教程,JavaScript学习入门教程

    js教程,JavaScript学习入门教程

    js教程,JavaScript学习入门教程JavaScript(通常缩写为JS)是一种解释型、面向对象、多范式的高级编程语言。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)...

  • jscript和javascript的区别

    jscript和javascript的区别

    JavaScript与JScript的区别JScript是Microsoft公司开发的,Javascript是Netscape公司开发的,虽然他们是死对头,但是在现在的浏览器中,无论你把语言指定为Javascript还是Jscript,浏览...

  • php递归函数的例子,php递归函数用法详解

    php递归函数的例子,php递归函数用法详解

    php递归函数的例子,php递归函数用法详解,有关php递归函数的用法,分享几个php递归函数的例子,在php编程中,使用递归进行函数调用很常见,递归函数用的好,可以提高代码效率,通过例子学习php递归函数的使用。...

  • 周排行
  • 月排行
  • 年排行

精彩推荐