繁体   English   中英

有人可以为我解释一下这种递归是如何工作的吗?

[英]Can someone explain for me how this recursion works?

这是乘法 function,它接受一个数组和数组中的 n 个元素,并返回数组中 N 个元素的乘积。

function multiply(arr, n) {
        if (n <= 0) 
        return 1;
        let first = multiply(arr, n - 1);
        console.log(`first value: ${first}`);
        console.log(typeof(first))
        let second = arr[n - 1];
        let result = first * second;
        return result;
      }
     const mul = multiply([1,2,3],2);
      console.log(mul)

这个递归如何替换 for 或 while 循环?

function 将数组的最后一个元素与n元素multiply ,即arr[n-1]与该数组前一个元素的乘积。

“先前元素的乘积”是使用multiply本身计算的。

一旦数组中没有元素,递归就结束。 然后将1作为乘法的初始因子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM