Rolf B: Wie füge ich einem Objekt eine Eigenschaft an einer BESTIMMTEN Position zu?

Beitrag lesen

Hallo pl,

atts: ['bar','baz','foo']

das ist eine von mehreren Lösungen, die das instabile Detail "JavaScript speichert Properties in Zugangsreihenfolge" umgehen. Zwei andere stehen in meinem Posting.

Der Ausgangspunkt meines Hinweises, dass die Serversprache mitspielen muss, bezog sich aber darauf, dass man es am Client schafft, ein JSON-Serialisat[1] eines Objekts zu erzeugen, in dem die Eigenschaften die gewünschte Reihenfolge haben, und war letztlich als weiteres Argument gedacht gegen die Idee, für eine reihenfolgestabile Übertragung die JSON-Repräsentation „Objekt“ zu verwenden.

Für Knotenknut stellt sich jetzt nur die Abwägung, welche Datenstruktur er in JS verwendet. Genügt ein Array von Eigenschaftsobjekten oder ist das zu langsam für den laufenden Betrieb? Wenn tatsächlich Eigenschaften mittendrin einsortiert werden müssen, dann hilft auch die Map nichts - die unterstützt das nämlich nicht. Dann hilft nur ein Objekt, das um deine Indexliste erweitert ist, oder man ersetzt das Objekt gleich durch ein Array von Eigenschaften. Und darin splice-t man die neuen Eigenschaften an die passende Position. Das sollte man dann auch sinnvollerweise in einer eigenen Klasse kapseln - und darüber jammern, dass man in JS keine Operatoren überladen kann.

Rolf

--
sumpsi - posui - clusi

  1. Hm. Gibt's das Wort? ↩︎