Javascript 如果没有',则我的平均值函数返回nan;没有任何论据。如何使其返回0?
使用rest参数,如果我的函数没有任何参数,如何使最后一个控制台日志显示0。前三个控制台日志正常并按预期返回,但最后一个控制台日志返回NaNJavascript 如果没有',则我的平均值函数返回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
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
。这正是我想要的。谢谢