Swift 中有新的 Array
函数 - map
、reduce
等。
我想使用它们将 [[String]]
连接到 [String]
但我不知道如何操作。 (我假设 map
或 reduce
会做我想要的事情,但可能是错误的)。
完成我需要做的事情的最佳方式是什么?
最佳答案
您需要使用 reduce
来实现这一点,因为您基本上是从 T
数组降到 T
,所以就是 T = [String]
。
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 行只是将累积数组与当前元素相加,将它们合并在一起。
关于ios - Swift:如何以正确的方式将 [[String]] 连接到 [String]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26394795/