JavaScript non ha "array associativi". Presenta file:
[1, 2, 3, 4, 5]
e oggetti:
{a: 1, b: 2, c: 3, d: 4, e: 5}
Array non hanno "chiavi", hanno indici, che vengono contati iniziando da 0.
array sono accessibili tramite []
e gli oggetti sono accessibili tramite []
o .
.
Esempio:
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}
Se si tenta di accedere a una matrice utilizzando una stringa come una chiave, invece di un int, che può causare problemi. Dovresti impostare una proprietà dell'array e non un valore.
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
jQuery's $.each
funziona con entrambi. Nella callback per $.each
, il primo parametro, key
, è la chiave dell'oggetto o l'indice dell'array.
$.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 matrice non ha alcuna chiave associativa. L'indice è la chiave. Cosa stai cercando di fare? – Guffa
Dove sei Array i.e 'messaggi'? postare questo – thecodeparadox
Potresti fornire un array di esempio (2-3 elementi) e quale "chiave associativa" ti aspetti? –