专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

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


本文地址:IT问答频道 https://www.eeeoo.cn/itwenda/903307.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!


IT问答
小编:小嗨整编
相关文章相关阅读
  • 总结CreateJS的详细介绍

    总结CreateJS的详细介绍

    CreateJS库是一款HTML5游戏开发的引擎,是一套可以构建丰富交互体验的HTML5游戏的开源工具包,旨在降低HTML5项目的开发难度和成本,让开发者以熟悉的方式打造更具现代感的网络交互体验。掌握了CreateJS可以更方便的完成HTM...

  • jsp文件怎么创建

    jsp文件怎么创建

    创建jsp文件的步骤:1、安装和配置java开发环境;2、安装和配置web服务器;3、创建jsp文件;4、编写jsp代码;5、部署和运行应用程序;6、调试和测试。详细介绍:1、安装和配置java开发环境,首先需要在计算机上安装jdk,可以从...

  • JS怎么获取当前时间戳

    JS怎么获取当前时间戳

    js获取当前时间戳,可以通过date.now()方法来实现,返回自1970年1月1日00:00:00utc以来经过的毫秒数也就是当前时间戳。下面我们就结合具体的代码示例,给大家介绍JS怎么获取当前时间戳。代码示例如下:...

  • nodejs 解决413错误

    nodejs 解决413错误

    在使用node.js开发web应用程序时,你可能会遇到处理大文件上传的情况。然而,当上传的文件太大时,可能会遇到http413请求实体过大的错误。这是因为默认情况下,node.js对请求体大小的限制为100kb。当请求实体大小...

  • js手机号码正则表达式

    js手机号码正则表达式

    正则表达式(regularexpression)是一个描述字符模式的对象。使用javascript正则表达式可以进行强大的模式匹配和文本检索与替换功能。手机号码正则表达式验证。functioncheckPhone(){var...

  • JSF和JavaScript有什么区别

    JSF和JavaScript有什么区别

    区别:jsf是一种用于构建web应用程序的java框架,提供了一种以组件为中心来开发javaweb用户界面的方法,从而简化了开发。而javascript是一种解释型的脚本语言,被广泛用于web应用开发,常用来为网页添加各式各样的动态功能。...

  • js中有哪些事件?js中常用事件的介绍

    js中有哪些事件?js中常用事件的介绍

    javascript使我们有能力创建动态页面。事件是可以被javascript侦测到的行为。网页中的每个元素都可以产生某些可以触发javascript函数的事件。那么,js中有哪些事件呢?本篇文章将给大家来介绍关于js中常用的事件。话不多说...

  • 什么是jsp开发技术

    什么是jsp开发技术

    什么是jsp开发技术?JSP全名为JavaServerPages,中文名叫java服务器页面,是一种动态网页技术。JSP是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptl...

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

精彩推荐