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

标签 ios swift

Swift 中有新的 Array 函数 - mapreduce 等。

我想使用它们将 [[String]] 连接到 [String] 但我不知道如何操作。 (我假设 mapreduce 会做我想要的事情,但可能是错误的)。

完成我需要做的事情的最佳方式是什么?

最佳答案

您需要使用 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/

相关文章:

iphone - 如何在 iPhone 模拟器中 OTA 安装我的应用程序

ios - 无法导入 pod Google/Analytics 的框架目标

iphone - UILineBreakMode 与 NSLineBreakMode

ios - 设置后 UITextView 属性文本为空

ios - 如何在 viewDidLoad 方法内部的 UIViewController 中初始化方法

ios - 调整 UIBarButtonItem 的 Imageview 的大小,以便按比例缩小图像 (iOS)

ios - swift3 - 如何保护 key

ios - 当单元格超出屏幕时,多次调用 UITableView

swift - 如何在 Swift 中正确初始化 UnsafePointer?

ios - 如何知道用户是否正在与应用程序交互