In javascript un array di valori chiave viene archiviato come oggetto. Ci sono cose come array in javascript, ma sono anche considerati in qualche modo oggetti ancora, controlla questa risposta di ragazzi - Perché posso aggiungere proprietà nominate a un array come se fosse un oggetto?
Le matrici sono in genere viste usando la sintassi della parentesi quadra e gli oggetti (matrici "chiave => valore") usando la sintassi della parentesi graffa, sebbene sia possibile accedere e impostare le proprietà dell'oggetto usando la sintassi della parentesi quadra come ha mostrato Alexey Romanov.
Le matrici in javascript sono in genere utilizzate solo con chiavi numeriche, auto-incrementate, ma gli oggetti javascript possono contenere coppie di valori chiave, funzioni e persino altri oggetti.
Array semplice ad es.
$(document).ready(function(){
var countries = ['Canada','Us','France','Italy'];
console.log('I am from '+countries[0]);
$.each(countries, function(key, value) {
console.log(key, value);
});
});
Produzione -
0 "Canada"
1 "noi"
2 "Francia"
3 "Italia"
Vediamo sopra che possiamo eseguire il loop di un array numerico usando la funzione jQuery.each e accedere alle informazioni al di fuori del loop usando parentesi quadre con tasti numerici.
Oggetto semplice (json)
$(document).ready(function(){
var person = {
name: "James",
occupation: "programmer",
height: {
feet: 6,
inches: 1
},
}
console.log("My name is "+person.name+" and I am a "+person.height.feet+" ft "+person.height.inches+" "+person.occupation);
$.each(person, function(key, value) {
console.log(key, value);
});
});
Produzione -
Mi chiamo James e sono un programmatore di 6 ft 1
nome James
programmatore di occupazione
altezza Oggetto {piedi: 6, pollici: 1}
In un linguaggio come php questo sarebbe considerato un array multidimensionale con coppie chiave-valore o un array all'interno di un array. Sto assumendo perché hai chiesto come eseguire il loop in un array di valori chiave che vorresti sapere come ottenere un oggetto (key => array di valori) come l'oggetto persona sopra per avere, diciamo, più di una persona.
Bene, ora che sappiamo che gli array javascript sono usati tipicamente per l'indicizzazione numerica e gli oggetti in modo più flessibile per l'indicizzazione associativa, li useremo insieme per creare una matrice di oggetti che possiamo scorrere, in questo modo -
Matrice JSON (matrice di oggetti) -
$(document).ready(function(){
var people = [
{
name: "James",
occupation: "programmer",
height: {
feet: 6,
inches: 1
}
}, {
name: "Peter",
occupation: "designer",
height: {
feet: 4,
inches: 10
}
}, {
name: "Joshua",
occupation: "CEO",
height: {
feet: 5,
inches: 11
}
}
];
console.log("My name is "+people[2].name+" and I am a "+people[2].height.feet+" ft "+people[2].height.inches+" "+people[2].occupation+"\n");
$.each(people, function(key, person) {
console.log("My name is "+person.name+" and I am a "+person.height.feet+" ft "+person.height.inches+" "+person.occupation+"\n");
});
});
Produzione -
Mi chiamo Joshua e sono un CEO di 5 ft 11
Mi chiamo James e sono un programmatore di 6 ft 1
Mi chiamo Peter e sono un designer di 4 ft 10
Mi chiamo Joshua e sono un CEO di 5 ft 11
Nota che al di fuori del ciclo devo usare la sintassi della parentesi quadra con un tasto numerico perché ora è un array di oggetti indicizzato numericamente e, naturalmente, all'interno del ciclo è implicito il tasto numerico.