Dictionary in JavaScript's image'

10530
Robert's profile picture'
Christof's profile picture'
Daniel Majunke 12's profile picture'
Thema
Thema
Fragen
2
Analytics

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"

Weiterlesen:

Untergeordnete Themen (0)
Alle Inhalte auf dieser Seite stehen, soweit nicht anders angegeben, unter der Lizenz Creative Commons Namensnennung 4.0 (CC-BY-4.0). Einzelne Elemente (aus anderen Quellen übernommene Fragen, Bilder, Videos, Textabschnitte etc.) können anderen Lizenzen unterliegen und sind entsprechend gekennzeichnet.