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

JSONata中$zip函数传数组参数的用法及未知子数组场景问题

JSONata中动态传入多子数组调用$zip的解决方法

问题现象

直接以多参数形式调用$zip时,能得到预期的数组转置结果:

$zip([1, 2, 3], [4, 5, 6], [7, 8, 9])

结果:

[
  [1, 4, 7],
  [2, 5, 8],
  [3, 6, 9]
]

但将所有子数组存入一个数组变量后,直接传入$zip会得到嵌套错误的结果:

(
    $arr := [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
    $zip($arr);
)

结果:

[
  [
    [1, 2, 3]
  ],
  [
    [4, 5, 6]
  ],
  [
    [7, 8, 9]
  ]
]

解决方法

使用JSONata的$spread()函数将数组展开为多个独立参数,再传入$zip,代码示例:

(
    $arr := [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
    $zip($spread($arr));
)

该写法会自动将数组变量中的每个子数组作为单独参数传递给$zip,无论子数组数量多少,都能得到正确的转置结果。

内容的提问来源于stack exchange,提问作者Robin Mackenzie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:42:00