入力値の合計
重要性: 4
次のような関数 sumInput()
を書きなさい:
- 値に関して、
prompt
を使ってユーザに訪ね、配列にその値を格納します。 - ユーザが非数値、空文字、または “キャンセル” を選択したとき、数値を尋ねるのを終了します。
- 配列のアイテムを計算し、合計を返します。
P.S. ゼロ 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() );