so… jetzt stellen wir uns mal vor wir bekommen den Flur mit Zellen =(Array) und benötigen eine oder die andere zelle nicht... Dann wird Flur (array) auch kleiner....
aus unserem oberen Beispiel:
[ [ "mqtt/0/DOino<>MQTT/0/58/1/0/0" ], "42.27", [ "mqtt/0/DOino<>MQTT/0/20/1/0/0" ], "-127.00" ]
Zelle 0 :"mqtt/0/DOino<>MQTT/0/58/1/0/0"
Zelle 1 :"42.27"
Zelle 2 : "mqtt/0/DOino<>MQTT/0/20/1/0/0"
Zelle 3 :"-127.00"
und wollen z.B. alle Zellen mit dem Inhalt````
"mqtt/0/DOino<>MQTT/0/58/1/0/0"
dafür wird ein Funktionsnode Benötigt mit folgenden code:
var outputMsgs = msg.payload;
var i;
while ((i = outputMsgs.indexOf("mqtt/0/DOino<>MQTT/0/58/1/0/0")) != -1)
{
outputMsgs.splice(i, 1);
}
var msgNEWarray={payload: outputMsgs}
return [msgNEWarray];
mit indexOf wird die Zelle gesucht, und wenn wir die Adresse der Zelle kennen, diese Zelle entfernt! hier noch ein beispiel mit entfernen von zellen mit "," oder "}"
[{"id":"5bb24327.748f4c","type":"function","name":"clean array","func":"var outputMsgs = msg.payload;\n var i;\n while ((i = outputMsgs.indexOf(":")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\n while ((i = outputMsgs.indexOf(",")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\n while ((i = outputMsgs.indexOf("{")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\n while ((i = outputMsgs.indexOf("}")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\nvar msgNEWarray={payload: outputMsgs}\nreturn [msgNEWarray];","outputs":"1","noerr":0,"x":252,"y":494,"z":"bc3e7d10.9bc388","wires":[[]]}]
[933_2016-01-10_16_39_57-.jpg](/assets/uploads/files/933_2016-01-10_16_39_57-.jpg)