Search code examples
arraysstringswiftintswift2

Convert String Array into Int Array Swift 2?


[Xcode 7.1, iOS 9.1]

I have an array: var array: [String] = ["11", "43", "26", "11", "45", "40"]

I want to convert that (each index) into an Int so I can use it to countdown from a timer, respective of the index.

How can I convert a String array into an Int Array in Swift 2?

I've tried several links, none have worked and all of them have given me an error. Most of the code from the links is depreciated or hasn't been updated to swift 2, such as the toInt() method.


Solution

  • Use the map function

    let array = ["11", "43", "26", "11", "45", "40"]
    let intArray = array.map { Int($0)!} // [11, 43, 26, 11, 45, 40]
    

    Within a class like UIViewController use

    let array = ["11", "43", "26", "11", "45", "40"]
    var intArray = Array<Int>!
    
    override func viewDidLoad() {
      super.viewDidLoad()
      intArray = array.map { Int($0)!} // [11, 43, 26, 11, 45, 40]
    }
    

    If the array contains different types you can use flatMap (Swift 2) or compactMap (Swift 4.1+) to consider only the items which can be converted to Int

    let array = ["11", "43", "26", "Foo", "11", "45", "40"]
    let intArray = array.compactMap { Int($0) } // [11, 43, 26, 11, 45, 40]