I am making a little sorting visualization program, but it sorts too quickly!
I would like a few seconds delay every time there is an iteration in the loop, so the sorts can be visualized.
I have a sorting function like so:
function swapp(k){
let numbers = document.getElementsByClassName("numbers");
if(Number(numbers[k].innerText) > Number(numbers[k+1].innerText)){
//Orig function socket
numbers[k].classList.add("swap");
numbers[k+1].classList.add("swap");
let temp = Number(numbers[k+1].innerText);
numbers[k+1].style.height = numbers[k+1].innerText = Number(numbers[k].innerText);
numbers[k+1].classList.remove("swap");
numbers[k].style.height = numbers[k].innerText = temp;
numbers[k].classList.remove("swap");
}
else{
numbers[k].classList.remove("active");
numbers[k+1].classList.add("active");
}
}
and I have a loop with setTimeout which calls the function like so:
for(let k = 0; k < theNum-1; k++){
if(Number(numbers[k].innerText) > Number(numbers[k+1].innerText)){
setTimeout(swapp(k), 600);
flag = 1;
}
else{
numbers[k].classList.remove("active");
numbers[k+1].classList.add("active");
}
}
The setTimeout delay doesn't happen during every iteration