首页 > 解决方案 > 返回序号之和

问题描述

我有一个叫做sum这个函数的函数应该返回序列号的总和,例如,如果我给出 它应该返回的sum数字, 我就这样做了, 但我想知道它是否可以用Javascript 中的方法来完成, 这是我的代码 51 + 2 + 3 + 4 + 5 = 15
forloop
reduce()

@Andrew Morton更新答案,就是这样完成的。

//const sum = num => {
  //let newn = 0;
  //for(let i = 0; i <= num; i++) newn += i // 1+2+3+4+5=15
 // return newn;
//}  
//console.log(sum(5)); // 15 

 // Andrew solution
 const sum = num => {
   return (num * (num+1))/2;
  }
 console.log(sum(5));

标签: javascriptreduce

解决方案


如果这是您想要的,您可以使用 reduce:

const sum = num => {
    return Array.from(
        Array(num).keys(),
        key => key + 1
    ).reduce(
        (v1, v2) => v1 + v2
    )
}

但是: 最好的方法是按照 Andrew Morton 在评论中的建议:

从 1 到 n 的数字之和为 n(n+1)/2,如果目标是使其更短、更快、更简单。——安德鲁·莫顿


推荐阅读