Es gibt bereits einige einfache Beispiele, aber ich stelle anhand Ihrer Formulierung fest, dass Sie wahrscheinlich aus einem PHP-Hintergrund stammen und erwarten, dass JavaScript auf die gleiche Weise funktioniert - dies ist jedoch nicht der Fall. Ein PHP unterscheidet array
sich sehr von einem JavaScript Array
.
In PHP kann ein assoziatives Array das meiste tun, was ein numerisch indiziertes Array kann (die array_*
Funktionen funktionieren, Sie können count()
es usw.). Sie erstellen einfach ein Array und beginnen mit der Zuweisung zu Zeichenfolgenindizes anstelle von numerischen.
In JavaScript ist alles ein Objekt (mit Ausnahme der Grundelemente: Zeichenfolge, numerisch, boolesch), und Arrays sind eine bestimmte Implementierung, mit der Sie numerische Indizes erstellen können. Alles , was zu einer Reihe geschoben wird seine Wirkung length
, und kann gegenüber der Verwendung Array Methoden wiederholt werden ( map
, forEach
, reduce
, filter
, find
, etc.) Da jedoch alles ein Objekt ist, du bist immer frei einfach assign Eigenschaften, denn das ist etwas , was Sie tun , um jedes Objekt. Die eckige Klammer ist einfach eine andere Möglichkeit, auf eine Eigenschaft zuzugreifen. In Ihrem Fall also:
array['Main'] = 'Main Page';
ist eigentlich gleichbedeutend mit:
array.Main = 'Main Page';
Aus Ihrer Beschreibung geht hervor, dass Sie ein 'assoziatives Array' möchten, aber für JavaScript ist dies ein einfacher Fall, bei dem ein Objekt als Hashmap verwendet wird. Ich weiß auch, dass es ein Beispiel ist, aber vermeiden Sie nicht aussagekräftige Namen, die nur den Variablentyp (z. B. array
) beschreiben, und Namen, die darauf basieren, was er enthalten sollte (z pages
. B. ). Einfache Objekte haben nicht viele gute direkte Wege zu iterieren, wir werden so oft drehen dann in Arrays zuerst unter Verwendung von Object
Methoden ( Object.keys
in diesem Fall - es gibt auch entries
und values
gerade jetzt zu einigen Browsern hinzugefügt werden) , die wir können Schleife.
// assigning values to corresponding keys
const pages = {
Main: 'Main page',
Guide: 'Guide page',
Articles: 'Articles page',
Forum: 'Forum board',
};
Object.keys(pages).forEach((page) => console.log(page));
associative arrays
in JS: Es ist entweder ein einfaches Array oder ein Objekt. Nichts verhindert das Hinzufügen nicht numerischer EigenschaftenArray
, aber das macht es nichtassociative
- insbesonderelength
werden diese Eigenschaften von Eigenschaften nicht automatisch gezählt.