How to reverse array in Swift without using “.reverse()”?

后端 未结 21 1599
清歌不尽
清歌不尽 2020-12-08 20:14

I have array and need to reverse it without Array.reverse method, only with a for loop.

var names:[String] = [\"Apple\", \"Microsof         


        
相关标签:
21条回答
  • 2020-12-08 21:08

    do you mean

    var names = ["Apple", "Microsoft", "Sony", "Lenovo", "Asus"]
    var newNames = [String]()
    
    for var i = names.count - 1; i >= 0 ; i-- {
      newNames.append(names[i])
    }
    names = newNames
    

    or

    names.map {newNames.insert($0, atIndex: 0)}
    names = newNames
    
    0 讨论(0)
  • 2020-12-08 21:10
    var names:[String] = [ "A", "B", "C", "D", "E","F","G"]
    var c = names.count - 1
    var i = 0
    while i < c {
        swap(&names[i++],&names[c--])
    }
    
    0 讨论(0)
  • 2020-12-08 21:10

    Here is how I did it and there is no warning for Swift 3

    let names = ["Apple", "Microsoft", "Sony", "Lenovo", "Asus"]
    var reversedNames = [String]()
    
    for name in names.enumerate() {
      let newIndex = names.count - 1 - name.index
      reversedNames.append(names[newIndex])
    }
    

    or just simply

    reversedNames = names.reverse()
    
    0 讨论(0)
提交回复
热议问题