返回课程

求输入数字的总和

重要性: 4

编写函数 sumInput(),该函数

  • 使用 prompt 向用户询问值,并将值存储在数组中。
  • 当用户输入非数字值、空字符串或按下“取消”时,停止询问。
  • 计算并返回数组项的总和。

附注:零 0 是一个有效的数字,请不要在输入零时停止。

运行演示

请注意解决方案中微妙但重要的细节。我们不会在 prompt 之后立即将 value 转换为数字,因为在 value = +value 之后,我们将无法区分空字符串(停止标志)和零(有效数字)。我们稍后会这样做。

function sumInput() {

  let numbers = [];

  while (true) {

    let value = prompt("A number please?", 0);

    // should we cancel?
    if (value === "" || value === null || !isFinite(value)) break;

    numbers.push(+value);
  }

  let sum = 0;
  for (let number of numbers) {
    sum += number;
  }
  return sum;
}

alert( sumInput() );