您希望对数组中的每个元素执行操作。例如,给定一个数字数组,您希望将每个值四舍五入到最接近的整数。
可以使用 Split
节点为数组中的每个元素发送消息。后面可以跟上用于操作单个元素所需的节点,然后再跟一个 Join
节点将它们重新组合成一个数组。
[{"id":"3149f240.c0e25e","type":"inject","z":"ac14500e.2c57d","name":"Array of decimals","topic":"","payload":"[1.67,2.98,3.12,4.99,5.50]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":960,"wires":[["bd57baa6.00f998"]]},{"id":"bd57baa6.00f998","type":"split","z":"ac14500e.2c57d","name":"Split array","splt":"\\n","spltType":"str","arraySplt":"1","arraySpltType":"len","stream":false,"addname":"","x":200,"y":1020,"wires":[["7ab9e9ed.d514b8"]]},{"id":"7ab9e9ed.d514b8","type":"range","z":"ac14500e.2c57d","minin":"0","maxin":"10","minout":"0","maxout":"10","action":"scale","round":true,"property":"payload","name":"Round value","x":350,"y":1020,"wires":[["f26660ab.007b3"]]},{"id":"f26660ab.007b3","type":"join","z":"ac14500e.2c57d","name":"","mode":"auto","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":"false","timeout":"","count":"","reduceRight":false,"x":490,"y":1020,"wires":[["f9b5abac.f13828"]]},{"id":"f9b5abac.f13828","type":"debug","z":"ac14500e.2c57d","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":550,"y":1080,"wires":[]}]
在其他编程环境中,此任务可以通过对数组元素创建循环来完成。
在 Node-RED 中,实现相同目的的方法是将包含数组的单个消息转换为消息流,可以单独处理,最后再将它们重新组合成一条消息。
Split
/Join
节点对通常一起使用以实现此目的。Split
节点将 msg.parts
属性添加到流中的每条消息中,这使得 Join
节点能够正确地重新组装原始消息。
版权所有 OpenJS 基金会 和 Node-RED 贡献者。保留所有权利。OpenJS 基金会 已注册商标并使用商标。有关 OpenJS 基金会 商标列表,请参阅我们的 商标政策 和 商标列表。未在 OpenJS 基金会商标列表 中指明的商标和徽标是其各自持有人的商标™ 或注册®商标。使用它们并不意味着与它们有任何关联或获得其认可。
OpenJS 基金会 | 使用条款 | 隐私政策 | OpenJS 基金会章程 | 商标政策 | 商标列表 | Cookie 政策