javascript - javascript:如何创建一个接收任意数量参数并根据数量取平均值的函数。论据?
问题描述
我想创建一个函数,它接收任意数量的参数并根据 num 取平均值。的论点。所以我尝试了如下代码;
function takeAvg(...nums) {
return nums.reduce((total, curVal) => {
return (total + curVal) / nums.length;
});
}
console.log(takeAvg(10, 20)) // returns 15 - no problem
console.log(takeAvg(10, 20, 30)) // returns 13.333333333333334 weirdly.
我认为问题出在 nums.legth 但我不明白为什么?请帮忙。谢谢。
解决方案
您的错误是您将求和的每个部分结果除以长度,而不仅仅是最终结果。
function takeAvg(...nums) {
return nums.reduce((total, curVal) => {
return (total + curVal);
}) / nums.length;
}
console.log(takeAvg(10, 20)) // 15
console.log(takeAvg(10, 20, 30)) // 20
推荐阅读
- python - 给定带有 Marshmallow Schema 的 Pymongo 游标,如何获得所需的 JSON 输出
- android - 转换为 Windows mpeg4 后如何访问 Samsung Voice Recorder m4a 书签?
- c# - 将 Word DOM 结构复制为 C# 对象
- python-sphinx - Sphinx 代码块在 HTML 中奇怪地呈现
- apache - 如何制作 tumblr 风格的个人资料网址
- javascript - Programmatically editing the path of polyline leaves a ghost line
- apache-kafka - Kafka - 在 Kafka 集群中重试
- android - 如何打开“google.navigation:q=
“在安卓网络视图中? - ios - 将新子级添加到 Firebase 数据库
- amazon-web-services - “数据不足”对 ec2 状态检查意味着什么