我对Swift还是很陌生,我敢肯定这是一个相对简单的问题。我有一个嵌套的for循环,在将数据附加到数组后,我想打破内部循环。下面是我的代码:
var_dump($data);
当前,break语句使我可以返回到 set 数组并检索下一项,但是,这会导致 reps 和 weight 数组从头开始。如何防止这种情况发生,以便所有循环都检索第二个项目?
预先感谢
答案 0 :(得分:3)
很难想象您的意图是什么(并且您还没有解释),所以我将给出两个带有两个不同答案的假设。 (请注意,这样做是要消除您的self.itemData
并将其替换为局部变量。
也许您正在尝试同时遍历三个数组。为此,请使用zip
并只需一个 for
循环。
如果zip3
本机存在,这会更容易;您可以编写它,但实际上没有必要:
let zippedArray = zip(setArray, zip(repsArray, weightArray))
for tuple in zippedArray {
let set = tuple.0
let reps = tuple.1.0
let weight = tuple.1.1
var itemData = "Set "
itemData += set
itemData += " "
itemData += reps
itemData += " Reps "
itemData += "Weight "
itemData += weight
itemData += "kg"
structSetArray.append(itemData)
}
但是,在现实生活中,最好是一个一个数组,其元素是具有三个属性的{em> struct (set
,{{1 }}和reps
)。
另一方面,可能是您试图遍历三个数组的所有所有组合 。在这种情况下,请将所有“打印”值移入最里面的循环,如下所示:
weight