NEWS
Anfängerfrage: String zerlegen text
-
möchte einen eingehenden String : "text1,text2" in die zwei Werte text1 und text2 zerlegen.
In einer Funktion habe ich folgendes geschrieben:var output = msg.payload.split (",");
var Wert1 = parseInt(output[0]);
var Wert2 = parseInt(output[1]);var msg1 = {payload:Wert1};
var msg2 = {payload:Wert2};return [msg1, msg2];
beckomme nan raus weil keine zahlen sondern buchstaben sind?
-
möchte einen eingehenden String : "text1,text2" in die zwei Werte text1 und text2 zerlegen.
In einer Funktion habe ich folgendes geschrieben:var output = msg.payload.split (",");
var Wert1 = parseInt(output[0]);
var Wert2 = parseInt(output[1]);var msg1 = {payload:Wert1};
var msg2 = {payload:Wert2};return [msg1, msg2];
beckomme nan raus weil keine zahlen sondern buchstaben sind?
- Warum verwendest Du parseInt ???
- Warum willst Du das an 2 Ausgänge senden?
- Warum musst Du codieren??
Also fangen wir mal mit der Selbstbeantwortung meiner Fragen an:
zu 1:
https://www.w3schools.com/jsref/jsref_parseint.aspWenn Du Dir die Referenz zu parseInt anschaust, dient es dazu Zahlen in einem String in Zahlen umzuwandeln. Du willst aber nur einen Text zerlegen. Wenn Du den gelben Text in der Funktionsbeschreibung anschaust dann steht da:

Wenn das 1. Zeichen ein Buchstabe und keine Zahl ist, dann wird NaN (Not a Number) zurückgegeben.
Also einfach weglassen.zu 2. Wenn Du 2 Nachrichten erzeugen willst, aber keine 2 Ausgänge benutzen willst (sonst musst Du halt in der function Node die Anzahl der Ausgänge erhöhen, dann musst Du ein geschachteltes Array verschicken.
Dein Code vereinfacht sich also wie folgt:

Im Übrigen empfehle ich Dir code sonst in code tags zu posten:

Also sieht Dein Code so aus:
var output = msg.payload.split(","); var Wert1 = output[0]; var Wert2 = output[1]; var msg1 = { payload: Wert1 }; var msg2 = { payload: Wert2 }; return [[msg1, msg2]];Wie gesagt, mit einem Array dann halt an 2 Ausgänge senden und Anzahl erhöhen:

zu 3:
Warum muss man immer codieren??OK - bissi JSONATA nutzen.
Hier mal ein paar Alternativen:

Die einfachste Möglichkeit habe ich natürlich wieder vergessen:

NUR eine Split Node nehmen und Komma, als Separator eingeben. Da MUSS man nichts codieren und das ist doch der Sinn - oder möchtest Du gerne Javascript programmieren lernen?
-
- Warum verwendest Du parseInt ???
- Warum willst Du das an 2 Ausgänge senden?
- Warum musst Du codieren??
Also fangen wir mal mit der Selbstbeantwortung meiner Fragen an:
zu 1:
https://www.w3schools.com/jsref/jsref_parseint.aspWenn Du Dir die Referenz zu parseInt anschaust, dient es dazu Zahlen in einem String in Zahlen umzuwandeln. Du willst aber nur einen Text zerlegen. Wenn Du den gelben Text in der Funktionsbeschreibung anschaust dann steht da:

Wenn das 1. Zeichen ein Buchstabe und keine Zahl ist, dann wird NaN (Not a Number) zurückgegeben.
Also einfach weglassen.zu 2. Wenn Du 2 Nachrichten erzeugen willst, aber keine 2 Ausgänge benutzen willst (sonst musst Du halt in der function Node die Anzahl der Ausgänge erhöhen, dann musst Du ein geschachteltes Array verschicken.
Dein Code vereinfacht sich also wie folgt:

Im Übrigen empfehle ich Dir code sonst in code tags zu posten:

Also sieht Dein Code so aus:
var output = msg.payload.split(","); var Wert1 = output[0]; var Wert2 = output[1]; var msg1 = { payload: Wert1 }; var msg2 = { payload: Wert2 }; return [[msg1, msg2]];Wie gesagt, mit einem Array dann halt an 2 Ausgänge senden und Anzahl erhöhen:

zu 3:
Warum muss man immer codieren??OK - bissi JSONATA nutzen.
Hier mal ein paar Alternativen:

Die einfachste Möglichkeit habe ich natürlich wieder vergessen:

NUR eine Split Node nehmen und Komma, als Separator eingeben. Da MUSS man nichts codieren und das ist doch der Sinn - oder möchtest Du gerne Javascript programmieren lernen?
habe getestet aber weis nicht welcher text1 ist und text2 breuchte alt array aus gang oder?
-
habe getestet aber weis nicht welcher text1 ist und text2 breuchte alt array aus gang oder?
@martin-baer sagte in Anfängerfrage: String zerlegen text:
habe getestet aber weis nicht welcher text1 ist und text2 breuchte alt array ausgang 0 oder 1
? -
@martin-baer sagte in Anfängerfrage: String zerlegen text:
habe getestet aber weis nicht welcher text1 ist und text2 breuchte alt array ausgang 0 oder 1
?@martin-baer Wie gesagt wenn Du es an 2 Ausgänge schicken willst dann ist Dein Code ja richtig.
return [msg1, msg2];
Aber auch so was geht ohne function Nodes

-
@martin-baer Wie gesagt wenn Du es an 2 Ausgänge schicken willst dann ist Dein Code ja richtig.
return [msg1, msg2];
Aber auch so was geht ohne function Nodes

ja vielen vielen DANK!!! es geht
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden