对于数组的最大值和最小值之间的数字,计算总和.例如:[1,4]应返回1 + 2 + 3 + 4 = 10

aay*_*shi 0 javascript array-algorithms

似乎编译器没有进入for循环.数组的总和是计算的.SumAll([1,4])应该返回10(1 + 2 + 3 + 4)作为输出.

function sumAll(arr) {
      //return Math.max.apply(Math,arr);
      //return Math.min.apply(Math,arr);

        //  return "0";
        var sum=arr.reduce(function(a,b){
          for(var i=Math.min.apply(Math,arr);i<=Math.max.apply(Math,arr);i++){
         return a+b;
        }
        },0);
      //return sum;
    }

    sumAll([1, 4]);
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 5

您可以直接使用数组中的值,而不是reduce.

function sumAll(arr) {
    var i, sum = 0;
    for (i = Math.min.apply(null, arr); i <= Math.max.apply(null, arr); i++) {
        sum += i;
    }
    return sum;
}

console.log(sumAll([1, 4]));
console.log(sumAll([1, 3, 9]));
Run Code Online (Sandbox Code Playgroud)