Oggetto Array
• Aggiunto in JS1.1
• Costrutto fondamentale nei linguaggi di programmazione
• Permette di iterare su insiemi di oggetti
• Gli elementi possono avere tipi diversi
• non occorre dimensionare l’array
• basta var pippo = new Array( );
• la proprietà length si puo’ settare e modificare volendo:
• pippo.length = 12;
Creare e riempire un Array
var valori = new Array();
for (i=0;i<10;i++) { valori[i] = i*i; } var nomi = new Array(50);
nomi[187] = “ultimo arrivato”;
nomi[12] = 15626.23;
nomi[187] = new Date();
var pari = new Array(2,4,6,8,10,12,14,16,18,20);
var primi = [1,3,5,7,11,13,17,19,23,29];
alert(primi[0]); // visualizza 1 var matrice = new Array(10);
for (i=0;i<10;i++) { matrice[i] = new Array(10); }
… alert(matrice[5][6]);
Visualizzare gli elementi
var valori = new Array();
… // si riempie l’array a piacere
for (i=0 ; i < valori.length ; i++) { document.write(valori[i]);
}
// per le matrici servono cicli annidati for (i=0; i<matrice.length ; i++) {
for (j=0 ; j<matrice[i].length ; j++) {document.write( matrice[i][j]);
}
}
Operazioni su Array I
valori.sort(); // restituisce un array con gli stessi elementi di valori, ma ordinati per valore (modifica anche valori)
valori.reverse(); // restituisce un array con gli stessi elementi di valori, ma nell’ordine
inverso a quello di valori (modifica anche valori)
valori.join(separa); // restituisce una stringa
formata da tutti gli elementi dell’array valori, separati dalla stringa separa
// data una stringa testo possiamo anche fare il contrario
valori = testo.split(“ ”);
Operazioni su Array II
valori1.concat(valori2); // crea e restituisce un nuovo array con gli stessi elementi di valori1 seguiti dagli elementi di valori2
valori.slice(i,j); // restituisce un array con gli elementi di valori compresi tra l’i-esimo (incluso) e il j-esimo (escluso)
valori.slice(0,valori.length); // tutti i valori
• Altri Esempi
Cicli: for_in
• Scorre le proprietà di un oggetto (solo JS1.1+)
• Sintassi:
• for (property in object) {comandi}
• es.
<script type=“text/javascript”>
<!--
function stampa_prop(oggetto) { var propInfo= “”;
for (var propName in oggetto)
{ propInfo=propName + “ = ” + oggetto[propName];
document.write(propInfo+”<br />”) }
}
//-->
</script>