Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果没有',则我的平均值函数返回nan;没有任何论据。如何使其返回0?_Javascript_Ecmascript 6 - Fatal编程技术网

Javascript 如果没有',则我的平均值函数返回nan;没有任何论据。如何使其返回0?

Javascript 如果没有',则我的平均值函数返回nan;没有任何论据。如何使其返回0?,javascript,ecmascript-6,Javascript,Ecmascript 6,使用rest参数,如果我的函数没有任何参数,如何使最后一个控制台日志显示0。前三个控制台日志正常并按预期返回,但最后一个控制台日志返回NaN function average(...numbers) { let avg = 0; for(let num of numbers) { avg += num; } avg = avg / numbers.length; return avg; } console.log(average(2, 6)); console.log(aver

使用rest参数,如果我的函数没有任何参数,如何使最后一个控制台日志显示0。前三个控制台日志正常并按预期返回,但最后一个控制台日志返回NaN

function average(...numbers) {
let avg = 0;
for(let num of numbers) {
    avg += num;
    }
avg = avg / numbers.length;
return avg;
}

console.log(average(2, 6));
console.log(average(2, 3, 3, 5, 7, 10));
console.log(average(7, 1432, 12, 13, 100));
console.log(average());

零数字的平均值是未定义的,因此获得
NaN
是完全可以预期的


但是如果您坚持在这种情况下获取
0
,则需要对其进行特殊处理,例如
if(numbers.length==0)返回0

如果不想显式编写特殊情况,可以使用逻辑AND
&
运算符的短路功能:

函数平均值(…值){
常量{length}=值
设平均值=0
for(值的常量值){
平均值+=平均值
}
返回长度和平均/长度(&A)
}
控制台日志(平均值(2,6))
日志(平均值(2,3,3,5,7,10))
控制台日志(平均值(71432,12,13100))

console.log(average())
不能除以零,否则会得到
NaN
。不确定您期望的是什么,无论如何,您都不希望给出默认值
0
<如果没有传递任何参数,
NaN
将是正确的返回方式。具体地说,
0/0
x/0
-x/0
将分别导致
NaN
无限
-Infinity
。这正是我想要的。谢谢