假设我有以下二维数组:

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())

08-18 11:58