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

如何嵌套Jsonnet对象推导并让内层循环执行不同次数?

解决Jsonnet对象推导的嵌套迭代问题

问题出在循环顺序上,Jsonnet的推导循环是从右往左执行的,你原来把grp的循环放在n的循环后面,导致遍历n时grp还未定义,自然没法调用grp.count。

调整循环顺序,先遍历分组对象,再基于每个分组的count生成对应的数字范围,就能实现每个分组生成对应数量的键:

{
    ["%s-thing-%i" % [grp.name, n]]: {
        name: grp.name,
        // 所有需要复用的内容直接写在这里即可
    }
    for grp in [{name: "foo", count: 2}, {name: "bar", count: 4}]
    for n in std.range(1, grp.count)
}

这段代码运行后会生成你想要的单层对象:包含2个foo-thing-*键和4个bar-thing-*键,每个键对应的对象结构保持一致。

内容的提问来源于stack exchange,提问作者Nick T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:42:34