How to convert an array of digits to a number in Swift

1 Answer

0 votes
import Foundation

// ------------------------------------------------------------
// digitsToNumberJoin
// Converts digits to strings, joins them, then parses.
// Example: [1,2,3,4] → "1234" → 1234
// ------------------------------------------------------------
func digitsToNumberJoin(_ digits: [Int]) -> Int {
    return Int(digits.map(String.init).joined())!
}

// ------------------------------------------------------------
// digitsToNumberMath
// Pure mathematical folding (no string operations).
// ------------------------------------------------------------
func digitsToNumberMath(_ digits: [Int]) -> Int {
    var n = 0
    for d in digits {
        n = n * 10 + d
    }
    
    return n
}

// ------------------------------------------------------------
// digitsToNumberReduce
// Functional Swift style using reduce().
// ------------------------------------------------------------
func digitsToNumberReduce(_ digits: [Int]) -> Int {
    return digits.reduce(0) { $0 * 10 + $1 }
}

// ------------------------------------------------------------
// Main
// ------------------------------------------------------------
let digits = [4, 6, 3, 9, 1, 2]

print("Using join():   \(digitsToNumberJoin(digits))")
print("Using math():   \(digitsToNumberMath(digits))")
print("Using reduce(): \(digitsToNumberReduce(digits))")



/*
run:
  
Using join():   463912
Using math():   463912
Using reduce(): 463912
  
*/

 



answered Jan 6, 2025 by avibootz
edited 2 days ago by avibootz
...