如何在Swift中合并两个数组

4

我有两个数组。

let A = ["91","91","49"]
let B = ["9989898909","9089890890","9098979896"]

我需要合并这些数组并在下拉菜单中显示,如下所示:

["91 9989898909","91 9089890890","49 9098979896"]

我如何使用Swift获得这个结果。我是Swift的新手,请问有人能帮忙吗?


确认数组A和B的大小是否相同。 - Kazi Abdullah Al Mamun
是的,两者的大小相同。 - Bhavani chada
确定c的第三个元素以“91”开头吗?如果是这样,那就不算真正的合并了... - Gereon
4
第三个数组元素为什么不以49开头? - Martin Muldoon
3个回答

15

压缩数组并将结果连接起来:

let A=["91","91","49"]
let B=["9989898909","9089890890","9098979896"]
let zipped = zip(A, B)
let result = zipped.map { $0.0 + " " + $0.1 }

2
处理并行数组很快变得混乱不堪,zip是最简洁的方法来处理它们。这是最佳答案。 - sketchyTech
我可以用三个数组来实现这个吗? - Bhavani chada
当然,只需嵌套 zip 调用即可:zip(A, zip(B,C)) - Gereon

2

这里是Swift的一小段代码:

let a = ["90", "91", "92"]
let b = ["80012", "82379", "123712"]

let result: [String] = a.enumerated().map { (index, element) in
    return index < b.count ? element + " " + b[index] : element
}

请注意,如果 a.count 大于 b.count,则会出现 "致命错误:索引超出范围" 错误。 - Ahmad F

1
let A = ["91","91","49", "5"]
let B = ["9989898909","9089890890","9098979896"]

使用zip()函数将数组AB中的值合并。如果AB的元素数量不同,合并仍然有效。然后将来自已合并结果数组的元组map到它们之间用空格分隔的元素。
let C : [String] = zip(A,B).map {$0 + " " + $1}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接