In Javascript wird ein Schlüsselwertarray als Objekt gespeichert. Es gibt solche Dinge wie Arrays in Javascript, aber sie werden auch immer noch als Objekte betrachtet. Überprüfen Sie die Antwort dieser Typen. Warum kann ich einem Array benannte Eigenschaften hinzufügen, als wäre es ein Objekt?
Arrays werden normalerweise mit eckiger Klammer-Syntax und Objekte ("key => value" -Arrays) mit geschweifter Klammer-Syntax angezeigt. Sie können jedoch Objekteigenschaften mit eckiger Klammer-Syntax aufrufen und festlegen, wie Alexey Romanov gezeigt hat.
Arrays in Javascript werden normalerweise nur mit numerischen, automatisch inkrementierten Schlüsseln verwendet, aber Javascript-Objekte können auch benannte Schlüsselwertpaare, Funktionen und sogar andere Objekte enthalten.
Einfaches Array z.
$(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);
});
});
Ausgabe -
0 "Kanada"
1 "Wir"
2 "Frankreich"
3 "Italien"
Wir sehen oben, dass wir ein numerisches Array mit der Funktion jQuery.each schleifen und mit eckigen Klammern mit numerischen Tasten auf Informationen außerhalb der Schleife zugreifen können.
Einfaches Objekt (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);
});
});
Ausgabe -
Mein Name ist James und ich bin ein 6 ft 1 Programmierer
Name James
Berufsprogrammierer
Höhe Objekt {Fuß: 6, Zoll: 1}
In einer Sprache wie PHP würde dies als mehrdimensionales Array mit Schlüsselwertpaaren oder als Array innerhalb eines Arrays betrachtet. Ich gehe davon aus, dass Sie, weil Sie gefragt haben, wie Sie ein Schlüsselwertarray durchlaufen sollen, wissen möchten, wie Sie ein Objekt (Schlüssel => Wertearray) wie das obige Personenobjekt erhalten, um beispielsweise mehr als eine Person zu haben.
Nun, da wir wissen, dass Javascript-Arrays normalerweise für die numerische Indizierung und Objekte flexibler für die assoziative Indizierung verwendet werden, werden wir sie zusammen verwenden, um ein Array von Objekten zu erstellen, die wir wie folgt durchlaufen können:
JSON-Array (Array von Objekten) -
$(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");
});
});
Ausgabe -
Mein Name ist Joshua und ich bin ein 5 ft 11 CEO
Mein Name ist James und ich bin ein 6 ft 1 Programmierer
Mein Name ist Peter und ich bin ein 4 ft 10 Designer
Mein Name ist Joshua und ich bin ein 5 ft 11 CEO
Beachten Sie, dass ich außerhalb der Schleife die Syntax in eckigen Klammern mit einem numerischen Schlüssel verwenden muss, da dies jetzt ein numerisch indiziertes Array von Objekten ist und natürlich innerhalb der Schleife der numerische Schlüssel impliziert ist.