Swift:如何以正确的方式将[[String]]连接到[String]?

时间:2014-10-16 01:25:42

标签: ios swift

swift中有新的Array个函数 - mapreduce等。

我想使用它们将[[String]]连接到[String],但我无法弄清楚如何。 (我假设mapreduce会做我想要的但可能是错的。)

做我需要的最好的方法是什么?

1 个答案:

答案 0 :(得分:4)

您需要使用reduce,因为您基本上是从TT的数组,而只是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行简单地将累积的数组与当前元素相加以将它们合并在一起。