Explicación de la " Quiero una matriz asociativa en Javascript" punto de vista (que es lo que en muchos casos objeto literales terminan siendo utilizados para)
de "Mastering Javascript Arrays"
Una matriz asociativa es una matriz que utiliza una cadena en lugar de un número como índice.
var normalArray = [];
normalArray[1] = 'This is an enumerated array';
alert(normalArray[1]); // outputs: This is an enumerated array
var associativeArray = [];
associativeArray['person'] = 'John Smith';
alert(associativeArray['person']); // outputs: John Smith
Javascript no tiene, y no admite matrices asociativas. Sin embargo ... Todas las matrices en Javascript son objetos y la sintaxis del objeto de Javascript proporciona una emulación básica de una matriz asociativa. Por esta razón, el código de ejemplo anterior funcionará realmente. Tenga en cuenta que esta no es una matriz real y tiene verdaderas dificultades si intenta usarla. El elemento 'persona' en el ejemplo se convierte en parte de las propiedades y métodos del objeto Array, al igual que .length, .sort(), .splice() y todas las demás propiedades y métodos incorporados.
Puede bucle a través de propiedades de un objeto con el siguiente bucle ...
var associativeArray = [];
associativeArray["one"] = "First";
associativeArray["two"] = "Second";
associativeArray["three"] = "Third";
for (i in associativeArray) {
document.writeln(i+':'+associativeArray[i]+', ');
// outputs: one:First, two:Second, three:Third
};
En el ejemplo anterior, associativeArray.length será cero, porque en realidad no poner nada en la matriz, lo ponemos en Objeto asociativeArray. asociativeArray [0] no estará definido.
El ciclo en el ejemplo anterior también recogerá los métodos, propiedades y prototipos que se hayan agregado a la matriz y no solo sus datos. Muchos de los problemas que tienen las personas con la biblioteca de Prototype es que sus matrices asociativas se rompen porque Prototype agrega algunas funciones de Prototype útiles al objeto Array y para i en bucles x recogen esos métodos adicionales. Esa es la oportunidad de usar Matriz/objetos como matriz asociativa de un hombre pobre.
Como último ejemplo, el código anterior funcionará independientemente de si define asociativeArray como una matriz ([]), un objeto ({}), una expresión regular (//), cadena ("") o cualquier otro objeto Javascript
La línea inferior es - no intente utilizar matrices asociativas, código para lo que son - propiedades del objeto, no matrices.
Ahora esta pregunta es contestada, puede que añadir AppJet tiene una explicación sencilla JavaScript, la lección sobre "objetos" lo explica muy agradable: http://appjet.com/ learn-to-program/lessons/objects –