所以这只是下面一些类似的示例代码。我想把所有人的高度加在一起,这样我就可以得到一个平均值。我似乎无法弄清楚如何使用一系列字典来做到这一点。我也在使用 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!
下面的代码将每个单独的值加倍,所以不是我要找的。p>
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/