JavaScript no tiene "matrices asociativas". Cuenta con matrices:
[1, 2, 3, 4, 5]
y objetos:
{a: 1, b: 2, c: 3, d: 4, e: 5}
Array no tienen "llaves", que tienen índices, que se cuentan a partir de las 0.
se accede utilizando matrices []
, y se puede acceder a los objetos usando []
o .
.
Ejemplo:
var array = [1,2,3];
array[1] = 4;
console.log(array); // [1,4,3]
var obj = {};
obj.test = 16;
obj['123'] = 24;
console.log(obj); // {test: 16, 123: 24}
Si se intenta acceder a una matriz mediante una cadena como una llave en lugar de un int, que pueden causar problemas. Debería establecer una propiedad de la matriz y no un valor.
var array = [1,2,3];
array['test'] = 4; // this doesn't set a value in the array
console.log(array); // [1,2,3]
console.log(array.test); // 4
$.each
obras de jQuery con ambos. En la devolución de llamada para $.each
, el primer parámetro, key
, es la clave del objeto o el índice de la matriz.
$.each([1, 2, 3, 4, 5], function(key, value){
console.log(key); // logs 0 1 2 3 4
});
$.each({a: 1, b: 2, c: 3, d: 4, e: 5}, function(key, value){
console.log(key); // logs 'a' 'b' 'c' 'd' 'e'
});
Una matriz no tiene ninguna clave asociativa. El índice es la clave. ¿Que estás tratando de hacer? – Guffa
¿Dónde está Array i.e 'messages'? publicar esa – thecodeparadox
¿Podría proporcionarnos una matriz de ejemplo (2-3 elementos) y qué "clave asociativa" espera? –