You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node-RED中JavaScript函数无法获取数组长度,求助解决

问题分析与解决

你的代码存在两个核心问题,导致无法得到预期结果:

  1. 错误包装数组为对象
    你创建的array1是一个包含payload属性的对象,而非数组。对象本身没有length属性,因此j = array1.length会得到undefined,而非目标数组的长度。

  2. 不符合Node-RED函数节点返回规则
    Node-RED的函数节点必须返回标准消息对象(通常是带payload属性的对象),直接返回数字j无法被节点正确处理和输出。

修正后的代码

假设msg.payload本身就是你需要处理的数组,直接修改代码如下:

// 直接获取目标数组的长度
let j = msg.payload.length;

// 返回符合要求的消息对象,将长度存入payload
return { payload: j };

额外验证建议

  • 可先添加调试节点直接输出msg.payload,确认它确实是包含50个元素的数组
  • 如果msg.payload不是直接的数组,而是嵌套在对象内的数组,需要调整路径获取数组,比如msg.payload.list.length(根据实际数据结构修改)

内容的提问来源于stack exchange,提问作者Hazarath Voleti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 16:52:06