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

如何获取两层嵌套ForEach数组中外层ForEach的索引

两层嵌套ForEach获取外层索引的实现方法

有两种常用的实现方案:

方案1:使用enumerated()同时获取外层元素与索引(兼容性最好)

通过enumerated()方法遍历外层数组,可以同时拿到索引和对应元素,直接在内层ForEach中访问外层索引变量即可:

// 注意修改外层、内层的闭包参数名,避免重名覆盖
ForEach(Array(total.enumerated()), id: \.element.id) { outerIndex, outerItem in
    ForEach(number, id: \.id) { innerItem in
        // 此处 outerIndex 就是外层total数组的对应索引
        print("当前外层索引:\(outerIndex)")
    }
}

方案2:遍历外层数组索引范围(适合需要操作数组元素的场景)

如果需要对外层元素做修改操作,可以直接遍历数组的索引区间,再通过下标取对应元素:

ForEach(total.indices, id: \.self) { outerIndex in
    let outerItem = total[outerIndex]
    ForEach(number, id: \.id) { innerItem in
        // 直接使用 outerIndex 即可
    }
}

注意事项

  • 不要给两层ForEach的闭包参数设置相同的名称,否则内层参数会覆盖外层参数,导致无法访问外层的变量或索引
  • 方案2要求外层数组是不会动态增删元素的恒等数组,如果数组会动态修改,建议使用方案1避免索引错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:39:00