同时迭代两个数组

我是Swift新手。 我一直在做Java编程。 我有一个在Swift中编写的场景。

以下代码是用Java编写的。 我需要在Swift中编写以下场景

// With String array - strArr1 String strArr1[] = {"Some1","Some2"} String strArr2[] = {"Somethingelse1","Somethingelse2"} for( int i=0;i< strArr1.length;i++){ System.out.println(strArr1[i] + " - "+ strArr2[i]); } 

我有一些快速的数组

 var strArr1: [String] = ["Some1","Some2"] var strArr2: [String] = ["Somethingelse1","Somethingelse2"] for data in strArr1{ println(data) } for data in strArr2{ println(data) } // I need to loop over in single for loop based on index. 

你可以请你提供基于索引的循环语法的帮助

你可以使用zip() ,它从两个给定的序列中创build一个序列对:

 let strArr1 = ["Some1", "Some2"] let strArr2 = ["Somethingelse1", "Somethingelse2"] for (e1, e2) in zip(strArr1, strArr2) { print("\(e1) - \(e2)") } 

该序列仅枚举给定序列/数组的“公共元素”。 如果它们具有不同的长度,则较长的数组/序列的附加元素被简单地忽略。

你也可以enumerate一个数组,并使用索引来查看第二个数组:

Swift 1.2:

 for (index, element) in enumerate(strArr1) { println(element) println(strArr2[index]) } 

Swift 2:

 for (index, element) in strArr1.enumerate() { print(element) print(strArr2[index]) } 

Swift 3:

 for (index, element) in strArr1.enumerated() { print(element) print(strArr2[index]) } 

尝试这个:

 zip([0,2,4,6], [1,3,5,7]).forEach { print($0,$1) } zip([0,2,4,6], [1,3,5,7]).forEach { print($0.0,$0.1) } 

你可以使用Range如果你仍然想for in

 var strArr1: [String] = ["Some1","Some2"] var strArr2: [String] = ["Somethingelse1","Somethingelse2"] for i in Range(start: 0, end: strArr1.count) { println(strArr1[i] + " - " + strArr2[i]) } 
 for(var i = 0; i < strArr1.count ; i++) { println(strArr1[i] + strArr2[i]) } 

这应该做到这一点。 从来没有使用过,所以一定要testing。