In JavaScript gibt es keinen Datentypen "Dictionary". Allerdings können Objekte und Maps wie "Dictionaries" verwendet werden.
Was ist ein Dictionary?
Dictionaries ähneln auf den ersten Blick Arrays, das heißt sie können eine beliebige Menge an einzelnen Datenobjekten (Elemente, member, properties) speichern. Bei einem Dictionary gehört zu einem Element (value) immer ein eineindeutiger Schlüssel (key).
Was ist der Unterschied zum Array?
Der große Unterschied zu Arrays ist nun, dass man bei einem Dictionary auf die einzelnen members über den Key direkt zugreifen kann. Sucht man also bei einem Array nach einem bestimmten Element, muss man das gesamte Array durchlaufen, bis man es gefunden hat. Bei einem Dictionary bekommt man das gesuchte Element "per Direktzugriff", so lange man den Key kennt. Das ist deutlich performanter.
Auch wenn JavaScript die praktische Array-Funktion ".find()" hat, mit denen man ein Element in einem Array finden kann, wird dabei im Hintergrund das gesamte Array durchlaufen. Bei großen Datenmengen kann eine Anwendung dadurch schnell langsam werden.
Ein weiterer Unterschied zu Arrays ist, dass doppelte Elemente (also zwei Elemente mit dem gleichen Key) ausgeschlossen sind, denn zu jedem Key kann es nur einen Value geben.
Dictionary als Javascript-Object
Beispiel:
var dict = new Object(); //Kurzform: var dict = {};
dict["key1"] = "value1";
dict["key2"] = "value2";
console.log(dict.key1); //Ausgabe: "value1"
console.log(dict[key2]); //Ausgabe: "value2"
Alternativ:
var dict = {"key1": "value1", "key2": "value2"};
console.log(dict.key1); //Ausgabe: "value1"
console.log(dict[key2]); //Ausgabe: "value2"
Dictionary als Javascript-Map
Beispiel:
var dict = new Map();
dict.set("key", "value");
console.log(dict.get("key")); //Ausgabe: "value"