38.4 FOR OF
Un altro metodo per fare un loop ad un array con un ciclo è il metodo FOR OF. Possiamo trasformare un ciclo for in modo più semplice con for of ed è utilizzabile per tutti gli elementi iterabili di js tipo un array, una map, un set. Vediamo l’esempio con un array, partiamo da questo codice HTML
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="CICLO FOR ESEMPIO">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<link href="for.css" rel="stylesheet" type="text/css">
<title>for</title>
</head>
<body>
<div class="main">
<h1>Programming languages</h1>
<form id="dati">
</form>
</div>
<script src="for.js"></script>
</body>
</html>
un po’ di stile
html{
background:#000;
color: #fff;
font-family: Helvetica;
}
h1{
color :green;
}
adesso passiamo al js, abbiamo questo array
let progLanguages =['C','C++','JAVA','PYTHON','SWIFT','PHP','C SHARP'];
andiamo a memorizzare nella variabile formId l’elemento del <form> con id dati, tramiti getElementById
let formId = document.getElementById('dati');
Inizializziamo queste 3 variabili di servizio
let cont = 0; let totLang = progLanguages.length; let htmlContent = '';
ora cicliamo l’array con il ciclo for per inserire il contenuto HTML nel form inserendo anche dei checkbox
for (;cont < totLang; cont ++){
htmlContent += '<div><input type="checkbox" value="'+progLanguages[cont]+'">'+progLanguages[cont]+'</div>';
}
Infine inseriamo il contenuto con innerHTML
formId.innerHTML = htmlContent;
Vediamo lo stesso esempio utilizzando il for of, inserito da jsES6 prima di tutto iniziamo col for in cui dobbiamo dichiarare una variabile che andrà a prendere il contenuto dell’array seguito dalla keyword of e l’array interessato
for ( let variabileDiServizio of arrayDaIterare );
nel nostro esempio:
for ( let program of progLanguages ) { ... }
ad ogni iterazione la variabile program prenderà il contenuto di ogni valore dell’array progLanguages
for ( let program of progLanguages ) {
htmlContent += '<div><input type="checkbox" value="' + program +'">' + program + '</div>';
}
l’effetto finale è lo stesso, ma la leggibilità del codice è migliorata.
For of è da utilizzare solo quando ci interessano solo i valori dell’array e non la chiave.