Salve, vorrei capire il comportamento anomalo del seguente script, atto a colorare a caso 50 div generati con un ciclo for precedente.
codice:
function colora() {  let elemento = document.getElementById("contenitore").getElementsByTagName("div");
  let numero = elemento.length;

  for (let i = 0; i < numero; i++) {
    let colore = "#";

    for (let c = 1; c <= 3; c++) { 
      let casuale = Math.floor(Math.random()*255); 
      let esadecimale = casuale.toString(16); 
      colore = colore + esadecimale;
    }

    elemento[i].style.backgroundColor = colore;
  }
  setTimeout("colora()", 500); 
}
In sostanza succede che, se tolgo il setTimeout(), un buon 20% di div restano senza colore, nel senso che, da Ispeziona, noto che non gli viene assegnato il valore colore all'attributo CSS background-color, mentre col setTimeout() ho che tutti i div ricevono un colore.
Perché alcuni div saltano l'istruzione??