假设我有以下二维数组:
let my2dArray = [[01, 02, 03, 04],
[05, 06, 07, 08],
[09, 10, 11, 12],
[13, 14, 15, 16]]
在
my2dArray
中,获得所有元素总和的最简单方法是什么?假设输出应为:
01+02+03+04+05+06+07+08+09+10+11+12+13+14+15+16=136
最佳答案
一种方法是使用joined()
将数组展平,然后使用reduce
求和:
let my2dArray = [[01, 02, 03, 04],
[05, 06, 07, 08],
[09, 10, 11, 12],
[13, 14, 15, 16]]
let result = my2dArray.joined().reduce(0, +)
print(result) // 136
注意,
my2dArray.joined()
不会创建另一个数组,而是创建一个FlattenBidirectionalCollection<Array<Array<Int>>>
允许顺序访问项目,包括向前和向后,但它不会分配新的存储。当然,如果您想查看数组格式的效果,可以执行Array(my2dArray.joined())
。