這篇文章中繼續介紹在Node-RED中數組元素的定義、拆分、合併與顯示等常見操作。
事前準備
以容器方式啓動Node-RED服務,啓動命令如下所示:
啓動命令:docker run -it -p 1880:1880 -v $PWD/data:/data -e TZ=Asia/Shanghai --name nodered -d nodered/node-red:1.0.4
定義數組
使用Inject的節點,其中提供JSON格式的數組定義方式,如下圖所示
Node-RED還提供了一個簡單的JSON編輯器,可以在其中直接輸入
選擇format JSON即可進行格式化
也可以選擇可視化的編輯方式
數組結果顯示
連接一個Debug類型的節點,部署之後,手動點擊觸發Inject節點,即可直接進行數組結果顯示了
拆分數組
創建一個缺省的split的節點用於拆分數組
連接、部署執行之後結果如下所示
數字運算:四捨五入
對於數組拆分出來的數字進行四捨五入運算生成去掉小數,可以使用round節點進行處理
連接、部署、執行結果之後,如下圖所示,可以看到已經進行了四捨五入了
合併數組
將分別處理之後的單個元素重新合併,可以使用join節點,此處進行缺省設定即可
連接、部署、執行結果之後,如下圖所示,可以看到已經將數組進行合併輸出結果了
JSON格式的flow
[{"id":"bff77d9a.20b6c","type":"inject","z":"73554227.4474dc","name":"數字數組輸入","topic":"","payload":"[1,2.2,3.345,4.456,5.567]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":120,"wires":[["1e13c184.78c3be"]]},{"id":"b4c533a9.3a2e3","type":"debug","z":"73554227.4474dc","name":"數組結果顯示","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":540,"y":220,"wires":[]},{"id":"1e13c184.78c3be","type":"split","z":"73554227.4474dc","name":"拆分數組","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":340,"y":120,"wires":[["8054bdc5.ae709"]]},{"id":"8054bdc5.ae709","type":"range","z":"73554227.4474dc","minin":"0","maxin":"100","minout":"0","maxout":"100","action":"scale","round":true,"property":"payload","name":"數字舍五入","x":530,"y":120,"wires":[["71a9d002.49773"]]},{"id":"71a9d002.49773","type":"join","z":"73554227.4474dc","name":"合併數組","mode":"auto","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":340,"y":220,"wires":[["b4c533a9.3a2e3"]]}]