斯威夫特 - 在数组转换值双打或浮筒 [英] Swift - Convert values in array to doubles or floats

查看:93
本文介绍了斯威夫特 - 在数组转换值双打或浮筒的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有哪些是字符串值的数组(但所有的弦都像1.0,2.0值等)。我想这些字符串转换成双打或花车因此我可以添加它们放在一起。我该怎么做这迅速?

I have an array with values which are strings (but all the strings are values like 1.0, 2.0, etc). I'm trying to convert those strings into doubles or floats so I can add them all together. How do I do this in swift?

推荐答案

更​​新: X $ C $ 7.3Ç雨燕•2.2

extension _ArrayType where Generator.Element == String {
    var doubleArray: [Double] {
        return flatMap{ Double($0) }
    }
    var floatArray: [Float] {
        return flatMap{ Float($0) }
    }
}

用法:

let strNumbersArray = ["1.5","2.3","3.7","4.5"]   // ["1.5", "2.3", "3.7", "4.5"]
let doublesArray = strNumbersArray.doubleArray    // [1.5, 2.3, 3.7, 4.5]
let floatsArray = strNumbersArray.floatArray      // [1.5, 2.3, 3.7, 4.5]
let total = doublesArray.reduce(0, combine:+)     // 12
let average = total / Double(doublesArray.count)  // 3

如果您有AnyObjects数组?你需要从可选AnyObject字符串转换为双:

If your you have an Array of AnyObjects? where you need to convert from from Optional AnyObject Strings to Double:

extension _ArrayType where Generator.Element == AnyObject? {
    var doubleArray:[Double] {
        return flatMap{Double($0 as? String ?? "")}
    }
    var floatArray:[Float] {
        return flatMap{Float($0 as? String ?? "")}
    }
}

用法:

let strNumbersArray:[AnyObject?] = ["1.5","2.3","3.7","4.5", nil]   // [{Some "1.5"}, {Some "2.3"}, {Some "3.7"}, {Some "4.5"}, nil]
let doublesArray = strNumbersArray.doubleArray    // [1.5, 2.3, 3.7, 4.5]
let floatsArray = strNumbersArray.floatArray      // [1.5, 2.3, 3.7, 4.5]
let total = doublesArray.reduce(0, combine:+)     // 12
let average = total / Double(doublesArray.count)  // 3

这篇关于斯威夫特 - 在数组转换值双打或浮筒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆