我在玩节点红色和unifi调色板。我询问了连接设备的unifi控制器,它给了我一个包含22个对象的数组。在对象中,我感兴趣的是提取mac并将其作为单独的msg发送,这样我就可以根据我感兴趣的macs列表来检查它。
我已经玩了几个小时了,我想出的最好方法就是使用node.warn()在调试器窗口中显示单个mac。
var l = msg.payload[0].length;
for (var i = 0; i < l; i++) {
node.warn(msg.payload[0][i].mac);
}

发布于 2018-08-23 22:30:22
节点-红色文档描述如何从函数节点返回多条消息。
您可以构建要发送的消息的数组,然后返回该数组。或者在循环中使用node.send(...)依次发送每个。
例如:
var l = msg.payload[0].length;
for (var i = 0; i < l; i++) {
node.send({
payload: msg.payload[0][i].mac
});
}虽然函数节点允许您用JavaScript编写所有代码,但也值得查看其他核心节点,看看它们如何帮助消除编写代码的需要。
您还可以通过使用一系列节点来获得相同的结果,例如:
msg.payload[0]移动到msg.payload的更改节点msg.payload.mac移动到msg.payload的更改节点发布于 2018-08-23 22:27:05
看起来输出是一个二维数组(第一个维度只有1深)。
如果您通过split节点的两个实例传递此输出,它将生成一个消息流,每个消息中都有一个设备,这将使处理起来更容易。
它需要是两个split节点,因为它是一个2d数组。
https://stackoverflow.com/questions/51995033
复制相似问题