[Javascript] Covert for loop code to recursion code

// 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
}

 

posted @ 2024-10-22 14:51  Zhentiw  阅读(8)  评论(0)    收藏  举报