In Javascript wird ein Schlüssel-Wert-Array als Objekt gespeichert. Es gibt solche Dinge wie Arrays in Javascript, aber sie sind auch etwas als Objekte noch, überprüfen Sie diese Jungs Antwort - Warum kann ich benannte Eigenschaften zu einem Array hinzufügen, als wäre es ein Objekt?
Arrays werden in der Regel in eckigen Klammern dargestellt, während Objekte ("key=>value"-Arrays) in geschweiften Klammern dargestellt werden. Wie Alexey Romanov gezeigt hat, kann man jedoch auch auf Objekteigenschaften mit eckigen Klammern zugreifen und diese festlegen.
Arrays in Javascript sind in der Regel nur mit numerischen, Auto inkrementiert Tasten verwendet, sondern Javascript-Objekte können benannte Schlüssel-Wert-Paare, Funktionen und sogar andere Objekte als gut.
Einfaches Array z.B..
$(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);
});
});
Ausgang -
0 "Kanada"
1 "Wir"
2 "Frankreich"
3 "Italien"
Wie wir oben gesehen haben, können wir mit der Funktion jQuery.each eine Schleife über ein numerisches Array ziehen und außerhalb der Schleife über eckige Klammern mit numerischen Schlüsseln auf Informationen zugreifen.
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);
});
});
Ausgang -
Mein Name ist James und ich bin ein 1,80 m großer Programmierer.
Name James
Beruf Programmierer
height Object {Fuß: 6, Zoll: 1}
In einer Sprache wie php würde dies als ein mehrdimensionales Array mit Schlüssel-Wert-Paaren oder ein Array innerhalb eines Arrays betrachtet werden. Ich nehme an, weil Sie gefragt haben, wie Sie durch ein Schlüssel-Wert-Array schleifen können, dass Sie wissen möchten, wie man ein Objekt (Schlüssel=>Wert-Array) wie das Person-Objekt oben erhält, um, sagen wir, mehr als eine Person zu haben.
Nun, da wir wissen, javascript Arrays sind in der Regel für numerische Indizierung und Objekte flexibler für assoziative Indizierung verwendet werden, werden wir sie zusammen verwenden, um ein Array von Objekten, die wir durch Schleife erstellen können, wie so -
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");
});
});
Ausgang -
Mein Name ist Joshua und ich bin ein 5 ft 11 CEO
Mein Name ist James und ich bin ein 1,80 m großer 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 der eckigen Klammern mit einem numerischen Schlüssel verwenden muss, da es sich jetzt um ein numerisch indiziertes Array von Objekten handelt, und natürlich ist der numerische Schlüssel innerhalb der Schleife impliziert.