自调用函数返回“未定义”

Self Invoking Function returns "undefined"

本文关键字:未定义 返回 调用 函数      更新时间:2023-09-26

我试图得到一个数组的总和注入到一个函数循环,直到所有的值被添加,console.log之前的"返回"记录正确的值,这意味着代码的工作,但当我试图使用该函数与任何数组它返回"未定义"…

var total = function(arr) {
     console.log(arr);
    if(arr.length > 1) {
      var temp = []
      for(var i=0, len=arr.length-1; i<len; i++) {
        temp.push(arr[i] + arr[i+1]);
      }
      total(temp);
    }
    else {
        console.log(arr.join()); // 48, exectly what I need
      return parseInt(arr.join());
    }
}
var sup = total([1,2,3,4,5]); // undefined

不完全确定如何调试…

如果您的arr.length大于1,您将使用临时数组调用total,但是,您对这个临时数组不做任何事情—您不返回它,也不以任何方式利用它,因此中间结果将丢失。

另外-这不是一个自调用函数;