输入数字求和
重要程度: 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() );