https://www.freecodecamp.cn/challenges/sum-all-numbers-in-a-range

我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。

最小的数字并非总在最前面。

如果你被难住了,记得使用 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。

这是一些对你有帮助的资源:

Math.max()

Math.min()

Array.reduce()

解法一:

function sumAll(arr) {
 var array=[], sum;
   var max=Math.max.apply(null,arr);
   var min=Math.min.apply(null,arr);
   var sumFun=function(max,min){
      for(var i=0;i<(max-min+1);i++){
         array.push(min+i);
      }
      array.reduce(function(previousValue,currentValue){
         return previousValue+currentValue;
      });
   };
   sum=sumFun(max,min);
   return sum;
}
sumAll([1, 4]);

解法二:(推荐)

function sumAll(arr) {
  return (arr[0] + arr[1])*(Math.abs(arr[0] - arr[1]) + 1)/2;
}

sumAll([1, 4]);

解法三:

function sumAll(arr) {
  var result=0,
  a_start=Math.min(arr[0],arr[1]),
  a_end=Math.max(arr[0],arr[1]);
  while(a_start<=a_end){
    result+=a_start;
    a_start++;
  }
  return result;
}

sumAll([1, 4]);

Demi_YuHongJun

Demi的随笔和技术空间