0

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. The program when it starts The program immediately after

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

0 Answers0