【问题标题】:How to get Sum of all possible values from a collection of [Any] array [closed]如何从 [Any] 数组的集合中获取所有可能值的总和 [关闭]
【发布时间】:2021-10-22 05:10:55
【问题描述】:
let array = [1,5,6,"50","Hi",54] as [Any]

我有一个像这样的数组,需要这个集合中所有可能值的总和 使用高阶函数

【问题讨论】:

  • 我不确定我是否遵循 - 在您的示例中,预期结果会是什么?
  • 必须是(50+54+6+5+1) = 116的加法
  • 所以String 可以转换为Ints 的值应该是,但那些不能(即Hi)被丢弃?但它是Any,而不仅仅是StringInt,那么还有其他类型必须转换为Int吗?
  • 我需要集合中每个可能值的总和,以便可以删除“Hi”字符串
  • 你应该展示你自己的尝试,而不是让我们做所有的工作。

标签: ios swift higher-order-functions


【解决方案1】:

这适用于Ints 和Strings,可以转换为Int。它会丢弃无法转换的字符串并忽略所有其他类型。

let result = array.reduce(into: 0) { partialResult, item in
    switch item {
    case let someInt as Int:
        partialResult += someInt
    case let someString as String:
        if let intValue = Int(someString) {
            partialResult += intValue
        }
    default:
        break
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多