JSFiddle - React, Tailwind, and code Playground
HTML
<body>
<label for="in">Dane wejściowe</label><br>
<textarea rows="8" cols="80" name="in" id="in"></textarea>
<br><br>
<label>Wynik</label><br>
<div id="out"></div>
<br><br>
<button id="ok">Start</button>
</body>
CSS
#in {
box-sizing: border-box;
width: 100%;
padding: 10px;
font: bold 14px Courier New;
}
#out {
box-sizing: border-box;
min-height: 100px;
padding: 11px;
font: bold 14px Courier New;
background-color: #eee;
}
JavaScript
/** tak obsługujemy przycisk, który po kliknięciu wywoła naszą funkcję: doHomework */
$("#ok").click(function() { doHomework(); });
var value = 10;
var decrement = 1;
var interval = 1000;
var timerId = -1;
function PerformCalc() {
if (value > 0) {
value -= decrement
}
writeResultToOutput('Value: ' + value + '<br />');
if (value == 0) {
clearInterval(timerId);
}
}
function runTimer(value, interval) {
timerId = setInterval(PerformCalc, interval);
writeResultToOutput('Value: ' + value + '<br />');
}
function doHomework() {
var data = getDataFromInput();
var argumentLines = data.split("\n");
var myTimeout = 0;
argumentLines.forEach(
function(argLine) {
var values = argLine.split(" ");
value = parseInt(values[0]);
interval = parseInt(values[1]);
setTimeout(function(){ runTimer(value, interval); }, myTimeout);
myTimeout += (value * interval);
}
);
}
function getDataFromInput() {
return $("#in").val();
}
function writeResultToOutput(resultHTML) {
$("#out").html(resultHTML);
}