Forum: PC-Programmierung Node-Red - Object key variabel


von Mark (Gast)


Lesenswert?

Moin zusammen,

Ich versuche mir gerade was in Node-Red zu erstellen, aber ich scheitere 
an Arrays mit Objekten.
Ich habe jetzt schon einiges gelesen, komme aber nicht wirklich 
dahinter. Java Script war noch nie so mein Ding, und ich setze es auch 
selten ein.

Hier mal der Beispielcode, der nicht das tut, was er soll:
1
deviceName=msg.deviceName
2
deviceType=msg.deviceType
3
data=msg.datapoint
4
newPayload = [{
5
    data: msg.payload
6
},
7
{
8
    device:deviceName,
9
    type:deviceType
10
}];
11
msg.payload=newPayload
12
return msg;

Mein PRoblem liegt nun bei der Zeile: "data: msg.payload"
msg.payload wird mit dem Inhalt des Payloads ausgegeben, also OK. Aber 
der Key des Objekts, welcher in der Variable data als String liegt, wird 
nicht verwendet. Stattdessen heißt mein Key nachher "data".
Ich möchte also den Key mit dem Inhalt der Variable data benennen.

Hoffentlich ist es einigermaßen verständlich.

von Εrnst B. (ernst)


Lesenswert?

Wenn du dynamisch Key-Namen verwenden willst, geht das per [] - 
Operator,
in etwa:
1
const deviceName=msg.deviceName;
2
const deviceType=msg.deviceType;
3
const data=msg.datapoint;
4
const erstesElement={}; // leer anlegen
5
// dynamisch "data" als Key verwenden
6
erstesElement[data]=msg.payload;
7
8
// wieder Array bauen, aus dem oben angelegten element, zweites wie bisher
9
const newPayload = [
10
 erstesElement,
11
 {
12
    device:deviceName,
13
    type:deviceType
14
}];
15
msg.payload=newPayload;
16
return msg;

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.