首页 > 编程语言 >[Javascript] Covert for loop code to recursion code

[Javascript] Covert for loop code to recursion code

时间:2024-10-22 14:42:46浏览次数:1  
标签:function arr code Covert sum Javascript let loop

// loop
function demo1() {
    // before loop
    beforeLoopCode;
    for (initCode; conditionCode; stepChangeCode) {
       loopCode
    }
    postCode
}

// recursive
function demo2() {
    beforeLoopCode;
    initCode
    function _m() {
        if (!conditionCode) {
            return
        }
        loopCode;
        stepChangeCode;
        _m()
    }
    _m()
    postCode
}

 

Example

function demo1(arr) {
    let sum = 0;
    for (let i = 0; i < arr.length; i++) {
      sum += arr[i]
    }
    return sum
}

function demo2(arr) {
    let sum = 0;
    let i = 0;
    function _m () {
        if (i >= arr.length) {
            sum += arr[i]
        }
        sum += arr[i]
        i++
    }
    _m()
    return sum
}

 

标签:function,arr,code,Covert,sum,Javascript,let,loop
From: https://www.cnblogs.com/Answer1215/p/18492708

相关文章

  • JavaScript 第25章:Vue 基础
    在学习JavaScript的第25章关于Vue的基础知识时,我们将从以下几个方面来了解Vue框架,并通过一个实战案例来巩固所学的知识。Vue概述Vue.js是一个用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,易于上手,同时......
  • JavaScript从零学起 —— 数据类型(进阶篇6)
    说明:此文章用作个人学习记录,若有任何问题或建议欢迎大家在评论区讨论文章目录前言一、日期(Date)1.Date类型的定义2.创建Date3.常用方法4.日期格式化5.常见问题与解决方案二、正则表达式(RegExp)1.正则表达式的定义2.创建正则表达式3.匹配常用字符4.常......
  • 代码随想录算法训练营第七天|leetcode454.四数相加II、leetcode383. 赎金信 、leetcod
    1leetcode454.四数相加II题目链接:454.四数相加II-力扣(LeetCode)文章链接:代码随想录视频链接:学透哈希表,map使用有技巧!LeetCode:454.四数相加II_哔哩哔哩_bilibili自己的思路:第一反应就是暴力搜索,一层一层for循环来完成,就是会超时1.1自己的代码纯纯暴力搜索classSolutio......
  • Codeforces 977 E1 Digital Village 贪心证明
    问题重述(原题简化得来):给定一个简单联通无向图,包含n个顶点,每条边有一个正整数边权。定义两顶点距离为两顶点间路径最大边权的最小值。记k个顶点为特殊顶点,记f(i)为i顶点分别到k个顶点的k个距离中的最小距离,记score=f(1)+f(2)+...+f(n)。现在需要最小化score。则以下贪心算法是正确......
  • leetcode:二叉树oj题
    目录1.单值二叉树2.相同的树3.对称二叉树4.二叉树的前序遍历5.二叉树的中序遍历6.二叉树的后序遍历1.单值二叉树https://leetcode.cn/problems/univalued-binary-tree/description/        对于这道题,我们可以进行深度优先查找,当值相同时就继续向下查找......
  • 在Ubuntu小设备上使用VSCode+SSH开发部署nicegui的Web应用,并设置系统开机自动启动应用
    在一些小的设备上跑Ubuntu系统,需要快速的开发和调整项目的时候,往往使用SSH进行远程的开发测试,这样可以避免传统的打包更新处理,能够快速的在实际环境上测试具体的内容。另外由于系统设备往往需要重启后能够保留应用的工作,因此也需要在Ubuntu系统设置自动启动的服务处理。本篇随笔介......
  • 人工智能编程助手MarsCode注册和安装步骤
    人工智能编程助手MarsCode注册和安装步骤字节最近推出了人工智能编程助手MarsCode,功能非常强大。在IDEA中安装和使用MarsCode的步骤如下:一、注册MarsCode账号    注册地址:https://www.marscode.cn/events/s/iSMPHK8a/二、在Idea中安装插件    点击菜单“File”——......
  • 【LeetCode】动态规划—790. 多米诺和托米诺平铺(附完整Python/C++代码)
    动态规划—790.多米诺和托米诺平铺题目描述前言基本思路1.定义2.理解问题和递推关系3.解决方法4.进一步优化5.小总结代码实现Python代码Python代码解释总结C++代码C++代码解释总结总结题目描述前言本文将详细讨论LeetCode上的"多米诺和三米诺平铺"问题。......
  • Leetcode—175. 组合两个表【简单】
    2024每日刷题(192)Leetcode—175.组合两个表实现代码#WriteyourMySQLquerystatementbelowSELECTPerson.firstName,Person.lastName,Address.city,Address.stateFROMPersonLEFTJOINAddressUSING(personId);运行结果之......
  • 2024常用 gui [转] Java Python C++ C# JavaScript Go Dart Swift
    下面就介绍一下热门编程语言对应的gui框架。JavaSwing:Java的基础GUI工具包,虽然年代较久,但仍然被广泛使用。JavaFX:现代的JavaGUI工具包,用于替代Swing,提供了更丰富的界面设计和动画效果支持。ApachePivot:一个开源的富互联网应用(RIA)框架,使用Java和XML来构建桌面和Web应用程序的......