Il codice va bene, l'oggetto $.Valori è non è ben definito sintatticamente.
Questo codice, ad esempio, funzione come dici tu:
Io personalmente avrei fatto così il ciclo, mi pare un pò più chiaro:Codice PHP:<html>
<script>
var $ = {};
$.Valori = {
primo:{
'a':'lettera A',
'b': 'lettera B',
'c':'lettera C'
},
secondo:{
a: [ '1a', '1b','1c' ],
b: [ '2a', '2b','2c' ],
c: [ '3a', '3b','3c' ]
}
};
var lettere = ["a","b","c"];
for (var i in lettere) {
var let= $.Valori.secondo[lettere[i]]
alert ( let[0]);
}
</script>
<body>
</body>
</html>
Codice PHP:for(var i = 0, len = lettere.length; i < len; i++) {
var let= $.Valori.secondo[lettere[i]]
alert ( let[0]);
}
In javascript puoi vedere un oggetto come un array associativo e possono essere creati "dal nulla" con la notazione JSON {x_1 : valore_1 [, x_i : valore_i]} dove i vari x_i sono degli identificativi e i valore_i sono oggetti (interi, float, object, array...).
Inoltre nota che gli array sono object dove, se usati come array, le chiavi sono degli interi (per questo il tuo ciclo for-in funziona).

Rispondi quotando