Node-Red - Object key variabel

Gast #7300799
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.
#7300837
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;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren