Hallo Henry,
ich kann Dir nur ansatzweise folgen. Mir scheint, mit plcname
meinst Du einen beliebigen Schlüsselbegriff, wie z.B. "M1".
Diese Anweisung
Object.assign(datenpunktliste, {"plcname": act_plcname});
erzeugt aber in datenpunktliste
lediglich eine Eigenschaft namens plcname
und speichert darin den Wert von act_plcname. Genausogut könntest Du
datenpunktliste.plcname = act_plcname;
schreiben. Object.assign kopiert einfach die enumerierbaren Eigenschaften eines Objekts in ein anderes.
Wenn Du eine Eigenschaft erzeugen möchtest, deren Name in act_plcname steht, musst Du die Notation mit eckigen Klammern verwenden:
datenpunktliste[act_plcname] = ...;
Und in Datenpunktliste möchtest Du unter unterschiedlichen Schlüsseln (also act_plcname-Werte) dann Informationsobjekte zu diesem plcname hinterlegen? Wie kommst Du im Schleifendurchlauf an diese Werte heran? Das zeigt dein Code nicht.
Und eventuell ist ein Objekt auch gar nicht die richtige Lösung für Dich. Die Datenstruktur, die Du hier zu planen scheinst, ist eine Map. Und dafür gibt's in JavaScript die Map-Klasse. Der Wiki-Artikel steigt etwas abstrakt ein, lies einfach, er enthält einige Beispiele.
datenstrukturliste = new Map();
datenstrukturliste.set(act_plcname, { plcvarname: zeile.spsvarname,
type: zeile.datentyp,
db: zeile.db });
plcdaten = datenstrukturliste.get("M1");
alleKeys = Array.from(datenstrukturliste.keys());
Früher gab es diese Klasse nicht und man hat Objekte als Maps missbraucht. Aber Node.js sollte Maps kennen.
Rolf
sumpsi - posui - obstruxi