首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点红-遍历UniFi API数组数据

节点红-遍历UniFi API数组数据
EN

Stack Overflow用户
提问于 2018-08-23 22:18:20
回答 2查看 628关注 0票数 1

我在玩节点红色和unifi调色板。我询问了连接设备的unifi控制器,它给了我一个包含22个对象的数组。在对象中,我感兴趣的是提取mac并将其作为单独的msg发送,这样我就可以根据我感兴趣的macs列表来检查它。

我已经玩了几个小时了,我想出的最好方法就是使用node.warn()在调试器窗口中显示单个mac。

代码语言:javascript
复制
var l = msg.payload[0].length;

for (var i = 0; i < l; i++) {
    node.warn(msg.payload[0][i].mac);
}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-23 22:30:22

节点-红色文档描述如何从函数节点返回多条消息。

您可以构建要发送的消息的数组,然后返回该数组。或者在循环中使用node.send(...)依次发送每个。

例如:

代码语言:javascript
复制
  var l = msg.payload[0].length;

  for (var i = 0; i < l; i++) {
     node.send({
          payload: msg.payload[0][i].mac
      });
  }

虽然函数节点允许您用JavaScript编写所有代码,但也值得查看其他核心节点,看看它们如何帮助消除编写代码的需要。

您还可以通过使用一系列节点来获得相同的结果,例如:

  1. msg.payload[0]移动到msg.payload的更改节点
  2. 一个拆分节点,用于在msg.payload中保存的数组中每个元素发送一条消息
  3. msg.payload.mac移动到msg.payload的更改节点
票数 0
EN

Stack Overflow用户

发布于 2018-08-23 22:27:05

看起来输出是一个二维数组(第一个维度只有1深)。

如果您通过split节点的两个实例传递此输出,它将生成一个消息流,每个消息中都有一个设备,这将使处理起来更容易。

它需要是两个split节点,因为它是一个2d数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51995033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档