javascript:如何创建一个可以接收任意数量的参数并取平均值的函数,具体取决于num。的论点?

问题描述 投票:1回答:2

我想创建一个函数,该函数可以接收任意数量的参数,并根据数量取平均值。论据。所以我尝试了如下代码;

function takeAvg(...nums) {
    return nums.reduce((total, curVal) => {
        return (total + curVal) / nums.length;
    });
} 
takeAvg(10, 20) // returns 15 - no problem
takeAvg(10, 20, 30) // returns 13.333333333333334 weirdly.

我认为问题出在nums.legth,但我不明白为什么?请帮忙。谢谢。

javascript average
2个回答
2
投票

您的错误是您将求和的每个部分结果除以长度,而不是最终结果。

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

0
投票

尝试:

function takeAvg(...nums) {
	return nums.reduce((total, curVal) => {
		return (total + curVal)
	}) / nums.length;;
} 
console.log(takeAvg(10, 20))
console.log(takeAvg(10, 20, 30))

在先前的情况下,您可以执行:

© www.soinside.com 2019 - 2024. All rights reserved.