gpt4 book ai didi

arrays - 字典中值的总和 - Swift

转载 作者:搜寻专家 更新时间:2023-10-31 21:53:08 25 4
gpt4 key购买 nike

所以这只是下面一些类似的示例代码。我想把所有人的高度加在一起,这样我就可以得到一个平均值。我似乎无法弄清楚如何使用一系列字典来做到这一点。我也在使用 Xcode 3。

let people = [
[
"name": "John Doe",
"sex": "Male",
"height": "183.0"
],
[
"name": "Jane Doe",
"sex": "Female",
"height": "162.0"
],
[
"name": "Joe Doe",
"sex": "Male",
"height": "179.0"
],
[
"name": "Jill Doe",
"sex": "Female",
"height": "167.0"
],
]

下面的代码似乎只是创建新的空数组。

var zero = 0.0
var peopleHeights = Double(player["height"]!)
var totalHeights = zero += peopleHeights!

下面的代码将每个单独的值加倍,所以不是我要找的。

var zero = 0.0
var peopleHeights = Double(player["height"]!)
var totalHeights = peopleHeights.map {$0 + $0}

在下面的代码中,我得到了响应:Double 类型的值没有成员 reduce。

var peopleHeights = Double(player["height"]!)
var totalHeights = peopleHeights.reduce(0.0,combine: +)

如有任何帮助,我们将不胜感激。

最佳答案

您需要使用map 提取每个人的高度。然后您可以在包含高度的列表上应用 reduce:

您应该使用 flatMap(compactMap on Swift 4+)而不是 map 作为 + 的作品仅针对未包装的值。

people.flatMap({ Double($0["height"]!) }).reduce(0, +)

swift 5

people.compactMap { Double($0["height"]!) }.reduce(0, +)

关于arrays - 字典中值的总和 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39553054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com