【问题标题】:Get top level index from a nested for function从嵌套的 for 函数中获取顶级索引
【发布时间】:2016-11-02 22:51:16
【问题描述】:

我有一个整数数组(这是一个[[Int]]),它代表一年中的任何给定月份(部分是周,行是天,所以如果月份[0][2] 将返回3你有一个月从星期天开始)我试图遍历数组并找到一个日期,然后让它返回一个 IndexPath 但我遇到了麻烦。到目前为止,我有这个:

for (index, week) in monthInfo.enumerated() {
    for (index, day) in week.enumerated() {
        if day == dateComponents.day /* Today's Date (the day I'm looking for) */ {
            selectedDay = IndexPath(row: index, section: ???)
        }
    }
}

我知道我可以从中获取当天的索引,但我不确定如何获取本周的索引,以便我可以制作完整的 IndexPath。有什么建议么?甚至更好,如何更好地做到这一点?

【问题讨论】:

  • 我对 swift 一无所知,但是在第二个循环中调用 index 变量不是更好,比如“dayIndex”吗?
  • 你也可以用if let dayIndex = week.index(of: dateComponents.day) { ... }替换内循环
  • @MartinR 谢谢,这样可以节省一些时间

标签: arrays swift swift3


【解决方案1】:

由于您可以控制您的元组,您可以在其中一个或两个中重命名 index 以消除歧义:

for (indexWeek, week) in monthInfo.enumerated() {
    for (indexDay, day) in week.enumerated() {
        if day == dateComponents.day /* Today's Date (the day I'm looking for) */ {
            selectedDay = IndexPath(row: indexDay, section: indexWeek)
        }
    }
}

【讨论】:

  • 您可能需要重写它,这样它就不会在找到匹配项后继续搜索。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 2011-06-08
  • 2018-11-17
  • 2013-01-06
  • 1970-01-01
相关资源
最近更新 更多