swift中有新的Array
个函数 - map
,reduce
等。
我想使用它们将[[String]]
连接到[String]
,但我无法弄清楚如何。 (我假设map
或reduce
会做我想要的但可能是错的。)
做我需要的最好的方法是什么?
答案 0 :(得分:4)
您需要使用reduce
,因为您基本上是从T
到T
的数组,而只是T = [String]
。< / p>
let stringArray = stringArrayArray.reduce([]) { $0 + $1 }
您可以使用操作员简写而不是闭包来更简洁地编写它:
let stringArray = stringArrayArray.reduce([], +)
这是写出来的完整方式,所以你可以看到发生了什么:
1: let stringArray = stringArrayArray.reduce([]) {
2: (accumulated: [String], element: [String]) -> [String] in
3: return accumulated + element
4: }
在第1行中,我们为初始值提供了一个空数组。第2行定义了闭包的参数和返回类型:accumulated
是第一次迭代中的初始值,以及之后迭代的结果,而element
是源数组的当前元素。第3行简单地将累积的数组与当前元素相加以将它们合并在一起。