So che un array in JavaScript non è altro che un oggetto. Quando mi definisco una matrice simile:Come copiare il comportamento dell'array?
var array;
array = [ "a", "b", "c" ];
ed eseguire
Object.keys(array);
ottengo seguente array: ["0", "1", "2"]
. La lunghezza dell'array di array
è 3
.
quando aggiungo una proprietà come:
array["a"] = "d";
Object.keys()
sta tornando ["0", "1", "2", "a"]
, ma la lunghezza gamma di array
è ancora 3
.
Ma quando aggiungo una proprietà del genere:
array["3"] = "d";
la lunghezza del array
è ora 4
.
Se array
è solo un altro oggetto, come posso ottenere questo tipo di comportamento quando avvio il mio oggetto da zero come var myArray = {}
?
[Leggi questo post del blog classico di Kangax] (http://perfectionkills.com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array/) - si scopre che non posso fare quello che stai chiedendo – Pointy
possibile duplicato di [lunghezza dell'array Javascript errata su array di oggetti] (http://stackoverflow.com/questions/2528680/javascript-array-length-incorrect-on-array-of-objects) – epascarello