使用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());
答案 0 :(得分:2)
根据定义,零数字的平均值是未定义的,因此完全可以预期NaN
。
但是如果你坚持在这种情况下获得0
,你将需要特殊情况,例如if (numbers.length == 0) return 0;
答案 1 :(得分:0)
如果您不想明确编写特殊情况,可以使用逻辑AND &&
运算符的短路功能:
function average(...values) {
const { length } = values
let avg = 0
for (const value of values) {
avg += value
}
return length && avg / length
}
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())