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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.