JSFiddle - React, Tailwind, and code Playground

HTML

<button id=start>Start</button><button id=end>End</button><div id=display></div>

JavaScript

var array = [];
for (var i = 0; i < 1000000; i++){
    array.push(i);
}
var terminate;
var j = 0;
function loop(){
    if (terminate){
        return;
    }
    $('#display').text(j);
    j++;
    if (j < array.length)
        setTimeout(loop, 1);
}

$(document).ready(function(){
    $('#start').on('click', function(){
        terminate = false;
        setTimeout(loop, 1);
    });
    $('#end').on('click', function(){
        terminate=true;
    });                   
})