【发布时间】:2018-03-13 17:00:46
【问题描述】:
我有一个双精度数组。例如:
let mceGain = [[3,4,5],[7,4,3],[12,10,7]] // Written as integers for simplicity here
我现在想用相应的索引对不同数组中的元素进行平均。所以我的输出看起来有点像这样:
//firstAvg: (3+7+12)/3 = 7.33
//secondAvg: (4+4+10)/3 = 6
//thirdAvg: (5+3+7)/3 = 5
最后我想将这些平均值存储在一个更简单的数组中:
//mceGain: [7.33,6,5]
我尝试使用内部带有 switch 语句的双 for 循环来执行此操作,但这似乎不必要地复杂。我假设使用reduce()、map() 和filter() 的组合可以实现相同的结果,但我似乎无法理解它。
【问题讨论】:
-
我会将两个单独的、更简单的操作组合起来:首先转置
[[3, 4, 5], [7, 4, 3], [12, 10, 7]],生成[[3, 7, 12], [4, 4, 10], [5, 3, 7]],然后用map平均每个子数组以生成[7.33, 6, 5]
标签: arrays swift functional-programming