javascript - 返回序号之和
问题描述
我有一个叫做sum
这个函数的函数应该返回序列号的总和,例如,如果我给出 它应该返回的sum
数字,
我就这样做了,
但我想知道它是否可以用Javascript 中的方法来完成,
这是我的代码 5
1 + 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));
解决方案
如果这是您想要的,您可以使用 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,如果目标是使其更短、更快、更简单。——安德鲁·莫顿
推荐阅读
- python - 我如何使用 discord.py 让它使用 id
- matlab - MATLAB中的双极系数
- c++ - C++:使用智能指针实现观察者设计模式时面临的问题
- c# - 如何提高枚举 JSON 文件的可读性?
- vue.js - 如何在 localhost 中使用 cli-plugin-pwa 和 workbox
- c# - 如果缺少指定的配置,msbuild 如何决定使用哪个配置?
- javascript - 谷歌浏览器通过Javascript或控制台选择所有复选框
- python - Python 字典的行为:fromkeys 与字典理解
- r - 用新数据重新训练随机森林
- java - 用于 CRUD 应用程序的 ViewModel