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