在Swift中迭代多个数组

时间:2016-10-14 13:24:49

标签: ios arrays swift enumerate

我希望使用枚举方法在Swift中基本匹配两个不同的数组。如果我有:

let array1 = ["a", "b", "c", "d"]
let array2 = ["1", "2", "3", "4"]

我需要返回一个新的数组:

newArray = ["1. a1", "2. b2", "3. c3", "4. d4"]

如何制作这样的数组?

3 个答案:

答案 0 :(得分:7)

您可以使用zip方法:

let res = zip(array1, array2).map {"\($1). \($0)\($1)"}

请注意,此方法在开头和结尾处重复array2中的项目。如果开头的数字应该是索引,请改为使用此表达式:

let res = zip(array1, array2).enumerated().map {"\($0+1). \($1.0)\($1.1)"}

答案 1 :(得分:0)

这解决了你的问题

let array1 = ["a", "b", "c", "d"]
let array2 = ["1", "2", "3", "4"]
var newArray: [String] = []

for (index, element) in array1.enumerated() {
    newArray.append("\(array1[index]). \(array2[index])\(array1[index])")
}

答案 2 :(得分:0)

我设法在朋友的帮助下解决了这个问题:

var newArray: [String] = []
    for (index, array1) in array1.enumerated() {
        newArray.append("\(index + 1). \(array1)(\(array2[index]))")
    }
    return newArray

谢谢!