Skip to content

分割 (split)

将消息分割成多个消息序列。

输入

包含数组、对象或字符串的消息。

输出

分割后的多个消息。

详细说明

分割节点可以将数组、对象或字符串分割成多个单独的消息。

每个输出消息都包含原始消息的一部分和序列信息。

分割类型

  • 数组: 将数组中的每个元素作为单独消息发送
  • 对象: 将对象的每个键值对作为单独消息发送
  • 字符串: 按指定分隔符分割字符串

配置选项

  • 分割使用: 指定分割方式
    • 数组长度
    • 对象键数量
    • 字符串长度
    • 指定字符
  • 输出: 每个部分的输出格式

输出消息格式

每个分割后的消息都包含:

javascript
msg = {
    payload: "分割后的数据",
    parts: {
        id: "abc123",       // 序列ID
        index: 0,           // 当前索引
        count: 5,           // 总数量
        type: "array",      // 分割类型
        ch: "",             // 分隔符(字符串分割时)
        key: "property"     // 键名(对象分割时)
    }
}

示例

分割数组:

javascript
// 输入
msg = {
    payload: ["苹果", "香蕉", "橙子"]
}

// 输出(3个消息)
// 消息1
msg = {
    payload: "苹果",
    parts: {id: "abc123", index: 0, count: 3, type: "array"}
}

// 消息2
msg = {
    payload: "香蕉", 
    parts: {id: "abc123", index: 1, count: 3, type: "array"}
}

// 消息3
msg = {
    payload: "橙子",
    parts: {id: "abc123", index: 2, count: 3, type: "array"}
}

分割对象:

javascript
// 输入
msg = {
    payload: {
        temperature: 25.6,
        humidity: 68.2,
        pressure: 1013.25
    }
}

// 输出(3个消息)
// 消息1
msg = {
    payload: 25.6,
    parts: {
        id: "def456", 
        index: 0, 
        count: 3, 
        type: "object",
        key: "temperature"
    }
}

// 消息2
msg = {
    payload: 68.2,
    parts: {
        id: "def456",
        index: 1,
        count: 3,
        type: "object", 
        key: "humidity"
    }
}

分割字符串:

javascript
// 配置:分隔符 = ","
// 输入
msg = {
    payload: "红色,绿色,蓝色,黄色"
}

// 输出(4个消息)
// 消息1
msg = {
    payload: "红色",
    parts: {
        id: "ghi789",
        index: 0,
        count: 4,
        type: "string",
        ch: ","
    }
}

按长度分割:

javascript
// 配置:每2个字符分割
// 输入
msg = {
    payload: "Hello World"
}

// 输出
// "He", "ll", "o ", "Wo", "rl", "d"

应用场景

  • 批量数据处理
  • 数组元素逐个处理
  • 字符串解析
  • 对象属性遍历

注意事项

  • 分割后的消息保持原始顺序
  • parts属性用于后续合并
  • 大数据量分割时注意性能
  • 配合join节点使用可重新合并

蜀ICP备2025139593号