我有一个数组,我想合并它.

这是数组:

let numbers = [ [ 1, 2, 3 ], [ 4, 5, 6 ] ]

我需要这样的输出:

let result = [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ]

推荐答案

let numbers = [[1,2,3], [4,5,6]]

let result = zip(numbers[0], numbers[1]).map { [$0.0, $0.1]}

print(result) // -> [[1, 4], [2, 5], [3, 6]]

如果数组中有更多元素,下面的方法就可以了.

let numbers = [[1,2,3], [4,5,6], [7,8,9]]

var result : [[Int]] = []

for n in 0...numbers.first!.count-1{
    result.append(numbers.compactMap { $0[n] })
}

print(result) // -> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Ios相关问答推荐

如何正确测试后台URLSessionDownloadTask?

Nomb iOS 17.4.0中崩溃

底部导航栏在iOS上浮动

UITableViewCell编程约束问题

Xcode 15中的版本控制发生了什么?

拖动手势导致 sim 崩溃 Swift UI

SwiftUI:.toolbar 不适用于 UITextView

发生异常:需要 issuerId

如何仅更改一个视图的导航标题 colored颜色 ?

Xcode 6 App Store 提交失败并显示您的帐户已经拥有有效的 iOS 分发证书

如何关闭情节提要弹出框

iOS:使用 UIView 的 'drawRect:' 与其层的委托 'drawLayer:inContext:'

在 Swift 中禁用向后滑动手势

iOS中的apk类似功能是什么?

iOS UITextView 或 UILabel 带有可点击的动作链接

iOS7 UITextView contentsize.height 替代

比较没有时间分量的 NSDates

在 NSUserDefaults 中存储值是否有任何限制?

如何检测快速touch 或单击的tableView单元格

iOS13状态栏背景 colored颜色 与大文本模式下的导航栏不同