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

如何在NodeRED中用Function节点统计第4位为Yes的子数组数量

NodeRED Function节点统计指定条件子数组数量

需求说明

需要在NodeRED的Function节点中,统计外层数组里**第4个元素(数组索引为3,因为JS数组从0开始计数)**为"Yes"的子数组数量,并将该数量作为msg.payload返回。数据来自Google Sheet,每一行对应一个子数组,示例数据如下:

[
    ["2024-03-30 9:25:38","2024-03-30T09:25:36.647Z","c9ea5f917bc74975b65dcbc656614308","Yes"],
    ["2024-03-30 11:07:15","2024-03-30T11:07:13.972Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-03-30 13:21:26","2024-03-30T13:21:24.432Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-04-02 17:05:23","2024-04-02T17:05:20.468Z","0b0633067a0041a39ae7d0502d25303a","No"],
    ["2024-04-03 11:47:55","2024-04-03T11:47:47.277Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-04-05 19:19:38","2024-04-05T19:19:37.735Z","0b0633067a0041a39ae7d0502d25303a","No"],
    ["2024-04-05 19:43:45","2024-04-05T19:43:43.067Z","0b0633067a0041a39ae7d0502d25303a","No"],
    ["2024-04-06 8:24:01","2024-04-06T08:23:59.429Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-04-06 14:04:00","2024-04-06T14:03:59.291Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-04-06 18:13:37","2024-04-06T18:13:35.459Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-04-08 17:34:19","2024-04-08T17:34:17.239Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-04-08 21:47:34","2024-04-08T21:47:32.868Z","0b0633067a0041a39ae7d0502d25303a","No"],
    ["2024-04-10 18:52:11","2024-04-10T18:52:10.138Z","0b0633067a0041a39ae7d0502d25303a","No"],
    ["2024-04-11 18:01:17","2024-04-11T18:01:15.296Z","0b0633067a0041a39ae7d0502d25303a","No"],
    ["2024-04-22 8:36:45","2024-04-22T08:36:42.964Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-04-22 8:37:23","2024-04-22T08:37:21.933Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-05-06 17:16:08","2024-05-06T17:16:06.432Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-05-09 14:39:28","2024-05-09T14:39:26.669Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-05-09 14:41:06","2024-05-09T14:41:05.029Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-05-11 18:48:12","2024-05-11T18:48:10.139Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-05-29 16:51:18","2024-05-29T16:51:16.836Z","0b0633067a0041a39ae7d0502d25303a","No"],
    ["2024-05-30 16:07:36","2024-05-30T16:07:33.431Z","0b0633067a0041a39ae7d0502d25303a","No"],
    ["2024-05-31 15:06:16","2024-05-31T15:06:15.495Z","c9ea5f917bc74975b65dcbc656614308","No"],
    ["2024-05-31 19:13:45","2024-05-31T19:13:44.829Z","0b0633067a0041a39ae7d0502d25303a","No"],
    ["2024-05-31 20:11:35","2024-05-31T20:11:34.247Z","c9ea5f917bc74975b65dcbc656614308","No"]
]

解决方案

简洁实现(数组filter方法)

在Function节点中输入以下代码,利用JS数组的filter方法快速筛选统计:

// 读取输入的数组数据
const sheetData = msg.payload;
// 筛选并统计符合条件的子数组数量
const yesCount = sheetData.filter(row => row[3] === "Yes").length;
// 将统计结果作为payload返回
msg.payload = yesCount;
return msg;

代码说明

  • sheetData.filter(row => row[3] === "Yes"):遍历外层数组,筛选出所有子数组第4个元素为"Yes"的项
  • .length:获取筛选后数组的长度,即符合条件的子数组总数
  • 最后将结果赋值给msg.payload并返回

传统循环实现

如果偏好使用for循环,也可以采用以下写法:

const sheetData = msg.payload;
let yesCount = 0;
// 遍历外层数组
for (let i = 0; i < sheetData.length; i++) {
    // 检查当前子数组的第4个元素
    if (sheetData[i][3] === "Yes") {
        yesCount++;
    }
}
msg.payload = yesCount;
return msg;

内容的提问来源于stack exchange,提问作者Jon Griffith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:18:11