JavaScript函数。有人能帮忙或解释一下为什么会这样吗?根据我的分析,我看到了20个

JavaScript函数。有人能帮忙或解释一下为什么会这样吗?根据我的分析,我看到了20个,javascript,Javascript,我想总结一下数组covertedValue中的所有元素。为什么我会得到一个结果?我写的递归函数有什么问题 function findOutlier(integers){ var covertedValue = integers.map(x => x % 2); var total = 0; for (i=0 ; i<covertedValue.length ; i++){ total = total + covertedValue[0] + findOutli

我想总结一下数组covertedValue中的所有元素。为什么我会得到一个结果?我写的递归函数有什么问题

function findOutlier(integers){

  var covertedValue = integers.map(x => x % 2);
  var total = 0;

  for (i=0 ; i<covertedValue.length ; i++){
    total = total + covertedValue[0] + findOutlier(integers.splice(1));  
  }

  console.log(total);

}

findOutlier([0, 1, 2]);

因为这一行为它自己创建了一个函数和一个私有别名

var factorial = 
// create a variable named factorial in global scope
// it contains the function fac

                function fac(n) {
// fac is a function available only in the factorial var context

   return n < 2 ?                     // if n < 2
                  1 :                 // return 1
                      n * fac(n - 1); // else return n * fac(n - 1)
};

console.log(factorial(5)); 
// calls factorial(5) which is 5*fac(4) which is 5*(4*fac(3)) ...

5*4*3*2*1等于120。你的分析是什么?5*4*3*2*1等于120看起来像是在经历一个循环。是的,对于像我这样的初学者来说,肯定很难喘息:但很高兴知道这个递归编程是如何工作的:。谢谢