Dynamische Schlüssel in JavaScript-Objekten erstellen
Beim Versuch, einen dynamischen Schlüssel für ein JavaScript-Objekt zu erstellen, können bei der Verwendung der Punktnotation Probleme auftreten . Dieser Artikel befasst sich mit dieser Herausforderung und untersucht die alternative Methode zur Verwendung von eckigen Klammern.
Ansatz mit eckigen Klammern
Um einen dynamischen Schlüssel mit eckigen Klammern zu erstellen, folgen Sie dieser Syntax:
jsObj['key' + i] = 'example' + 1;
Diese Methode funktioniert, indem sie den Eigenschaftsnamen als berechnete Zeichenfolge behandelt und so die Zuweisung dynamischer Schlüssel ermöglicht.
Array- und Objekteigenschaften verstehen
Arrays in JavaScript zeigen ein besonderes Verhalten in Bezug auf numerische Eigenschaftsnamen. Die Längeneigenschaft eines Arrays spiegelt den maximalen numerischen Eigenschaftswert wider. Beim Festlegen einer numerischen Eigenschaft für ein Array wird die Längeneigenschaft entsprechend aktualisiert.
Im Gegensatz dazu zeigen einfache Objekte dieses Verhalten nicht. Das Festlegen einer numerischen Eigenschaft für ein Objekt hat keinen Einfluss auf dessen Längeneigenschaft.
Vorteile und Überlegungen
Die Verwendung von eckigen Klammern bietet die folgenden Vorteile:
Bedenken Sie jedoch die möglichen Auswirkungen der Array-Serialisierung. In JSON serialisierte Array-Instanzen enthalten nur numerisch benannte Eigenschaften. Wenn zusätzliche Eigenschaften hinzugefügt werden, gehen diese möglicherweise bei der Serialisierung verloren.
ES2015 Berechnete Eigenschaftsnamen
ES2015 führt berechnete Eigenschaftsnamen ein und bietet eine elegante Lösung für die Erstellung dynamischer Schlüssel:
var key = 'DYNAMIC_KEY', obj = { [key]: 'ES6!' };
Dieser Ansatz ermöglicht die Zuweisung dynamischer Schlüssel, ohne explizit Zeichenfolgenverkettungen zu erstellen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich dynamisch Schlüssel in JavaScript-Objekten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!