Node-Red - Object key variabel

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

Eine eigene Frage? Dieser Thread ist über 3 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.