discutiamo sto risultato asieme un attimo??
codice:
var a = [];
a[0] = "a";
a[1] = "b";
/* [!!!] la prossima riga è molto importante. Infatti, per il modo in cui viene numerata (uso della stringa "public" invece che un numero), essa finisce per essere una proprietà pubblica dell'array inteso come oggetto e non conta come elemento dell'array inteso in senso classico!
*/
a["public"] = "variabile pubblica dell'oggetto Array";
alert("a.length: " + a.length) // stampa 2 - ma gli elementi registrati sono 3!!
// stampo la proprietà dell'oggetto che "non appartiene" all'array!!
alert(a.public) // esso è in effetti presente
Come inquadrate il fenomeno?
1 - sembra che usando una stringa al posto di un numero come indice dell'array si passi dalla modalità "array" a quella "oggetto" (di cui in egffetti gli array sono un sottoinsieme in javascript).
2 - quindi gli array associativi non sono supportati dfal linguaggio?