Hallo Knut
kurze Frage...
wie füge ich einem Objekt eine Eigenschaft an einer BESTIMMTEN Position zu?
Kurze Antwort:
Gar nicht.
Etwas längere Antwort:
Objekteigenschaften haben keine definierte Reihenfolge. Das heißt insbesondere, dass du dich nicht darauf verlassen kannst, dass bei der Iteration über die Eigenschaften eines Objekts die Reihenfolge eingehalten wird, in der die Eigenschaften angelegt wurden. Vielleicht wird sie das, vielleicht auch nicht.
Wenn du Strings als Schlüssel verwenden willst, aber die Reihenfolge der Einträge eine Rolle spielt, dann sind plane Objekte nicht die richtige Datenstruktur für dich. Besser geeignet für diesen Anwendungsfall sind Maps. Bei einer Map werden die Einträge grundsätzlich in der Reihenfolge gespeichert, in der sie hinzugefügt wurden.
// Create a map
const map = new Map([
['key 1', 'value 1'],
['key 2', 'value 2']
]);
Möchtest du an einer bestimmten Stelle einen Eintrag hinzufügen, kannst du dir die Einträge deiner Map in ein Array kopieren, die Liste aktualisieren und mit dem Ergebnis wieder eine Map erzeugen. Bei Maps handelt es sich um iterierbare Objekte und es werden standardmäßig die Einträge als Array mit zwei Elementen ausgegeben, so wie sie dem Konstruktor in dem Beispiel oben übergeben wurden.
Du kannst zum Beispiel die Methode Array.from
mit einer Map aufrufen.
Der Wiki-Artikel, den ich zum Thema Maps geschrieben habe, ist leider noch nicht ganz fertig, aber eigentlich solltest du dort alle nötigen Informationen finden. Eine kürzere Übersicht zu Maps findest du in diesem Forumsbeitrag. Dort sind ebenfalls alle Methoden mit Kurzbeschreibung und entsprechendem Beispiel aufgeführt.
Viele Grüße,
Orlok