整数数组中每个元素的数字总和(Swift)

时间:2017-10-01 07:43:49

标签: arrays swift

在swift 3中,如何计算数组内的每个整数数字求和?

示例:

var nums = [111,222,333] 

输出应该是这样的:[3,6,9]

这是计算结果:[1+1+1, 2+2+2, 3+3+3]

1 个答案:

答案 0 :(得分:2)

您可以按如下方式实施:

let nums = [111,222,333]

func transform(_ element: Int) -> Int {
    var intsChars: [Int] = []
    for char in "\(element)".characters {
        intsChars.append(Int(String(char))!)
    }

    return intsChars.reduce(0, +)
}

let result = nums.map { transform($0) }

print(result) // [3, 6, 9]

<强>更新

Martin R's answer中所述:

func digitSum(_ n : Int) -> Int {
    var n = n
    var sum = 0
    while n > 0 {
        sum += n % 10 // Add least significant digit ...
        n /= 10   // ... and remove it from the number.
    }
    return sum
}

您也可以获得相同的输出:

let result = nums.map { digitSum($0) } // [3, 6, 9]