Javascript循环代码返回'undefined'

时间:2015-08-25 19:32:09

标签: javascript undefined

我正在尝试创建一个函数(称为差异),它将找到数字数组之和与(其最大值*数组中的项数)之间的差异。我已经尝试了以下内容,但它一直未定义返回!有什么帮助吗?

function difference(randomArray){

  var origSum = function () {
    var sum = 0;
    for (var i = 0; i < randomArray.length; i++ ) {
      sum += randomArray[i]
    };
    return sum;  
  };

  var maxi = function () {  
    var max = 0
    for (var x = 0; x < randomArray.length; x++) {
      if (randomArray[x] > max) {
        max = randomArray[x]
      };
    };
    return max;
  };

  var sum = function () {
    return ((maxi * randomArray.length) - origSum)
  };

  if (randomArray.length <= 1) {
    return (1 - 2)
  } 
  else {
    return sum
  };
};

1 个答案:

答案 0 :(得分:0)

maxi,origSum和sum是函数。你需要这样称呼它们,包括括号。

return (1 - 2)

顺便说一下有一些缺点。如果数组中的所有值都为负,则maxi将返回0而不是最大值。最后,{{1}}总是返回-1,而如果数组包含1个项目,您可能希望返回唯一的数组值。