Sarebbe il caso di affrontare i problemi uno alla volta, altrimenti faccio un casino mentale...
Innanzitutto ho trovato una notazione di tipo [] e dei metodi chiamati push e pop.
Tutto questo mi sa di Array...
Andiamo a vedere le proprietà e i metodi degli Array in Javascript...
Sì, come per i comandi Assembly per lo stack, push e pop aggiungono e tolgono dalla coda dell'Array gli elementi.
Provo a crearmi un codice ad hoc...
<script> var matrice=[] function aggiungi(nome){ matrice.push(nome); } function elimina(){ matrice.pop(); } aggiungi("mario"); aggiungi("pasquale"); aggiungi("antonio"); aggiungi("nicola"); aggiungi("giorgio"); aggiungi("carletto"); for (n=0;n<matrice.length;n++){alert(matrice[n]);} elimina(); for (n=0;n<matrice.length;n++){alert(matrice[n]);} elimina(); for (n=0;n<matrice.length;n++){alert(matrice[n]);} </script>Sì, funziona come previsto.
Ma i metodi push e pop restituiscono anche dei valori.
Mi faccio un codice che mi aiuta a capire meglio questo:
<script> var matrice=[] //il metodo push restituisce la nuova lunghezza dell'Array alert(matrice.push("mario")); alert(matrice.push("pasquale")); //il metodo pop restituisce il nome dell'elemento eliminato dall'Array alert(matrice.pop()); </script>Ecco, come mi aspettavo, ottengo prima 1 e poi 2, quindi ottengo il nome "pasquale", che è appunto quello che era in coda ed è stato eliminato.
Quindi si può dichiarare un Array semplicemente con due parentesi quadre!
Questo non lo sapevo...
Dunque la sintassi matrice=[] equivale a quella che già conosco:
<script>
var matrice=new Array();
//il metodo push restituisce la nuova lunghezza dell'Array
alert(matrice.push("mario"));
alert(matrice.push("pasquale"));
//il metodo pop restituisce il nome dell'elemento eliminato dall'Array
alert(matrice.pop());
</script>
o a questa:
<script>
var matrice=new Array("pippo","ciccio","marco","giovanni");
//il metodo push restituisce la nuova lunghezza dell'Array
alert(matrice.push("mario"));
alert(matrice.push("pasquale"));
//il metodo pop restituisce il nome dell'elemento eliminato dall'Array
alert(matrice.pop());
</script>
Nessun commento:
Posta un commento