Erklärung aus dem " ich möchte ein assoziatives Array in Javascript“Sicht (was in vielen Fällen Objektliterale für wird verwendet, am Ende)
Von "Mastering Javascript Arrays"
Ein assoziatives Array ist ein Array, das statt einer Zahl eine Zeichenfolge als Index verwendet.
var normalArray = [];
normalArray[1] = 'This is an enumerated array';
alert(normalArray[1]); // outputs: This is an enumerated array
var associativeArray = [];
associativeArray['person'] = 'John Smith';
alert(associativeArray['person']); // outputs: John Smith
Javascript hat keine assoziativen Arrays und unterstützt diese auch nicht. Allerdings ... Alle Arrays in Javascript sind Objekte und die Objektsyntax von Javascript gibt eine grundlegende Emulation eines assoziativen Arrays. Aus diesem Grund wird der obige Beispielcode funktionieren. Seien Sie gewarnt, dass dies kein echtes Array ist, und es hat echte Fallstricke, wenn Sie versuchen, es zu verwenden. Das Element 'person' im Beispiel wird ebenso wie .length, .sort(), .splice() und alle anderen integrierten Eigenschaften und Methoden Teil der Eigenschaften und Methoden des Array-Objekts.
Sie können eine Schleife durch die Eigenschaften eines Objekts mit der folgenden Schleife ...
var associativeArray = [];
associativeArray["one"] = "First";
associativeArray["two"] = "Second";
associativeArray["three"] = "Third";
for (i in associativeArray) {
document.writeln(i+':'+associativeArray[i]+', ');
// outputs: one:First, two:Second, three:Third
};
In dem obigen Beispiel associativeArray.length Null sein werden, weil wir nicht wirklich etwas in das Array gelegt haben, setzten wir es in assoziativeArray-Objekt. assoziativeArray [0] ist nicht definiert.
Die Schleife im obigen Beispiel erfasst auch alle Methoden, Eigenschaften und Prototypen, die zum Array hinzugefügt wurden und nicht nur Ihre Daten. Viele Probleme mit der Prototype-Bibliothek bestehen darin, dass ihre assoziativen Arrays brechen, weil Prototype dem Array-Objekt ein paar nützliche Prototyp-Funktionen hinzufügt und i-in-x-Schleifen diese zusätzlichen Methoden aufgreift. Das ist die Plage, wenn man Array/Objekte als assoziatives Array eines armen Mannes benutzt. Als letztes Beispiel funktioniert der vorherige Code unabhängig davon, ob Sie assoziativesArray als ein Array ([]), ein Objekt ({}), einen regulären Ausdruck (//), einen String ("") oder. Definieren jedes andere Javascript-Objekt.
Die Quintessenz ist - versuchen Sie nicht, assoziative Arrays zu verwenden, Code für das, was sie sind - Objekteigenschaften, nicht Arrays.
Nun ist diese Frage beantwortet ist, kann ich hinzufügen AppJet ein einfaches JavaScript-Tutorial hat, erklären die Lektion auf „Objekten“ es wirklich schön: http://appjet.com/ Lernen-zu-Programm/Unterricht/Objekte –