Hallo,
eingabe = [ { Maschinenname: "M1", plcvarname: "Drehzahl", format: "double", offset: 220, dings: 17, bums: 99 }, { Maschinenname: "M1", plcvarname: "Temperatur", format: "integer", offset: 128, dings: 11, bums: 77 }, { Maschinenname: "M1", plcvarname: "Oeffnung", format: "dword", offset: 132, dings: 13, bums: 47 }, { Maschinenname: "M2", plcvarname: "Drehzahl", format: "double", offset: 220, dings: 17, bums: 99 }, { Maschinenname: "M2", plcvarname: "Temp_1", format: "integer", offset: 128, dings: 11, bums: 77 }, { Maschinenname: "M2", plcvarname: "Temp_2", format: "integer", offset: 132, dings: 13, bums: 47 } ];
Soweit richtig geraten?
Ja, das ist richtig
datenpunktliste = { M1: { Drehzahl: { format: "integer", offset: 220, dings: 17, bums: 99 }, Temperatur: { format: "integer", offset: 128, dings: 11, bums: 77 }, Oeffnung: { format: "dword", offset: 132, dings: 13, bums: 47 }, }, M2: { Drehzahl: { format: "integer", offset: 220, dings: 17, bums: 99 }, Temp_1: { format: "integer", offset: 128, dings: 11, bums: 77 }, Temp_2: { format: "integer", offset: 132, dings: 13, bums: 47 }, }, };
Ist das richtig?
Ja richtig, damit kann ich gut leben !! Ich möchte jetzt in einer Schleife das Objekt füllen. Dazu habe ich nachfolgenden Code
result.forEach(function (zeile) {
sps_datenpunktliste = {
[aktiver_spsname]: {
[zeile.spsvarname]: {
datentyp: zeile.datentyp, db: zeile.db, offset: zeile.offset, bit: zeile.bit, format: zeile.format, nachkomma: zeile.nachkomma
}
}
}
});
Dies funktioniert in so weit, das jede Zeile im Objekt überschrieben wird, was ich auch verstehe, da das Objekt komplett neu beschrieben wird.
Trotz intensiver suche im Netz habe ich nichts passendes zum Thema "dynamische beschreiben verschachtelter Objekte" gefunden. 😉
Mein Ansatz wäre nun gewesen
result.forEach(function (zeile) {
sps_datenpunktliste = aktiver_spsname;
sps_datenpunktliste[aktiver_spsname] = zeile.spsvarname;
sps_datenpunktliste[aktiver_spsname][zeile.spsvarname] = {
datentyp: zeile.datentyp, db: zeile.db, offset: zeile.offset, bit: zeile.bit, format: zeile.format, nachkomma: zeile.nachkomma }
});
Ich kann den Key "aktiver_spsname" beschreiben ... soweit funktioniert es. Dann müsste ich eigentlich eine Stufe tiefer kommen und "zeile.spsvarname" beschreiben können ... Pustekuchen ...
Hier komm ich nicht weiter ...