##やりたいこと:
1~10までのランダムな数字を1.2秒ごとに4回画面上に表示し、かつ同時に合計値を表示したい。
##例:
3 5 2 8 の数字が1つずつ画面に現れ、最後に合計の数:18が表示されるようにしたい
##困っていること:
合計のsumに数値が足されず、正しい数が出ない。
##試したこと
- calc()の戻り値に合計対象である数字を指定して、呼び出し元のbtn_start()で合計しようとしたが、setInterval()のなかで関数に戻り値を持たせることができなかった
https://developer.mozilla.org/ja/docs/Web/API/Window/setInterval
上記URLに、「関数には引数が渡されず、また戻り値を想定していません。」と記載がある。
- calc()のなかでグローバル変数のsumに対して数値を追加しているが、0のまま。
(コード)
Javascript
1<!DOCTYPE html> 2<head> 3 <meta charset="utf-8"> 4 <title>そろばん</title> 5</head> 6<body> 7 <input type="button" value="開始" onclick="btn_start()"/> 8 <p id="num"></p> 9 <p id="result"></p> 10 <script> 11 'use strict'; 12 var sum; 13 function getRandomArbitrary(max) { 14 return Math.floor(Math.random() * (max - 1) + 1); 15 } 16 function calc(){ 17 var temp = getRandomArbitrary(10); 18 document.getElementById("num").innerHTML = temp; 19 sum += temp; 20 } 21 22 function btn_start(){ 23 sum = 0; 24 // 1.2秒のインターバルで繰り返し 25 let timerId = setInterval(() => calc(), 1200); 26 document.getElementById("result").innerHTML = sum; 27 // 4.8秒後に停止 28 setTimeout(() => { clearInterval(timerId); }, 4800); 29 } 30 </script> 31</body>
Javascript初心者です。よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/08 08:00