【问题标题】:How to get the sum of all Double values in a tuples array? [duplicate]如何获取元组数组中所有 Double 值的总和? [复制]
【发布时间】:2022-02-18 17:40:58
【问题描述】:

这是我的函数,我正在尝试获取所有 Double 值的总和。我尝试使用 +=,但出现了很多错误,非常感谢您的帮助!

 func getSum(myList: [(title: String, id: Int, value: Double)]) -> Double {
    
    var key = Double()

    for i in 0..<myList.count {
         //something over here needs to change
        key = myList[i].value
        
    }

     
    
    return key
}


let myList: [(String, Int, Double)] = [("A", 1, 1.5), ("B", 2, 2.5), ("C", 3, 3.5)] // should return 7.5 (1.5 + 2.5 + 3.5)

【问题讨论】:

  • 您现在对key = myList[i].value 所做的事情是在每次迭代时将值分配给key,因此在最后一次iteration 中它的值是3.5,这就是您所看到的。相反,您需要在每次迭代时添加它 key += myList[i].value 是您所需要的。
  • += 对于您的情况应该没有任何问题。我在我这边试了一下,效果很好。
  • 再次感谢!我将它与相同的变量一起使用,所以这就是它不起作用的原因:0

标签: arrays swift tuples


【解决方案1】:

Map 元组与其value 值相加,并与reduce 相加。

func getSum(myList: [(title: String, id: Int, value: Double)]) -> Double {
    return myList.map(\.value).reduce(0.0, +)
}

【讨论】:

    【解决方案2】:
    func getSum(myList: [(title: String, id: Int, value: Double)]) -> Double {
    
    var key = Double()
    
    for i in 0..<myList.count {
        key = key + myList[i].value
    }
    
    return key
    }
    
    
    let myList: [(String, Int, Double)] = [("A", 1, 1.5), ("B", 2, 2.5), ("C", 3, 3.5)]
    
    print(getSum(myList:myList));   **//Output 7.5**
    

    【讨论】:

      猜你喜欢
      • 2019-05-04
      • 1970-01-01
      • 2023-01-25
      • 2017-09-23
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      相关资源
      最近更新 更多