【问题标题】:Is there a way in Swift 2.0 to start a tuple-for-loop from a certain index of an array?Swift 2.0 中有没有办法从数组的某个索引开始一个元组循环?
【发布时间】:2016-03-16 16:41:23
【问题描述】:

我想用第二个位置的索引值开始一个 for in 循环(使用元组)。

myArray = [9,1,8,2,7,3,7,94,5]


for (index, element) in myArray.enumerate(){

}

如何在数组的第二个位置启动它? (索引 1 和元素 1)

【问题讨论】:

    标签: arrays swift for-loop tuples


    【解决方案1】:

    也许吧?

    myArray = [9,1,8,2,7,3,7,94,5]
    
    for (index, element) in myArray.enumerate() where index > 0 {
    
    }
    

    【讨论】:

    • 是的,在循环之外
    【解决方案2】:

    您可以在枚举上调用dropFirstdropLast

    let myArray = [9,1,8,2,7,3,7,94,5]
    
    for (index, element) in myArray.enumerate().dropFirst() {
      print(index, " - ", element)
    }
    
    for (index, element) in (myArray.enumerate().dropFirst(3)) {
      print(index, " - ", element)
    }
    

    【讨论】:

    • 请注意,任何 dropFirst 解决方案都不会保留原始索引。收到的第一个索引将是 0,而不是 1。
    • 如果在枚举后删除,则元组将具有值的原始索引。
    • 好点。使“没有其他 dropFirst 解决方案”:)
    • 太棒了! enumerate() 已重命名为 enumerated()(我认为在 Swift 3 中)。
    【解决方案3】:
    for (index, element) in myArray[1..<myArray.count].enumerate() {
    
    }
    

    【讨论】:

      【解决方案4】:

      这是我能想到的最简单的方法。

      for (index, element) in myArray.enumerate().dropFirst() {
      
      }
      

      或者如果你想自定义开始索引

      let startIndex = 1
      for (index, element) in myArray.enumerate().dropFirst(startIndex) {
      
      }
      

      【讨论】:

        猜你喜欢
        • 2017-10-24
        • 2021-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-14
        • 2020-11-04
        • 2022-11-22
        相关资源
        最近更新 更多