输入数字求和
重要程度: 4
写出函数 sumInput()
,要求如下:
- 使用
prompt
向用户索要值,并存在数组中。 - 当用户输入了非数字、空字符串或者点击“取消”按钮的时候,问询结束。
- 计算并返回数组所有项之和。
P.S. 0
是有效的数字,不要因为是 0 就停止问询。
请注意这个解决方案的细微但是很重要的细节。我们没有在 prompt
后立即把 value
转换成数字,因为在执行 value = +value
之后,就没办法区分出空字符串(中断标志)和数字 0(合法输入)了,所以要放到后面再处理。
function sumInput() {
let numbers = [];
while (true) {
let value = prompt("A number please?", 0);
// 应该结束了吗?
if (value === "" || value === null || !isFinite(value)) break;
numbers.push(+value);
}
let sum = 0;
for (let number of numbers) {
sum += number;
}
return sum;
}
alert( sumInput() );