在数组上迭代时添加元素

Bre*_*uro 5 arrays loops swift

我有一个循环,遍历数组中的每个元素。在一定条件下,我在循环内向该数组添加了另一个元素。但是,循环未考虑该新元素。如果数组中最初有6个项目,并且在循环遍历时,我又增加了2个,它仍然仅循环执行6次。我怎样才能解决这个问题?

for ingredient in ingredientList {
    if ingredient.name == "banana" {
        var orange = Ingredient(name: "orange")
        ingredientList.append(orange)
    }
    if ingredient.name == "orange" {
        // this never executes
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我的成分之一是香蕉,请在列表中添加橙色。但是,循环甚至不会考虑新添加的元素。我怎样才能完成这样的事情?为什么不起作用?

Kub*_*bba 4

尝试这个:

var array = ["a", "b"]

for i in array.startIndex...array.endIndex {
    if array[i] == "b" {
        array.append("c")
        print("add c")
    }
    if array[i] == "c"{
        array.append("d")
        print("add d")
    }
}
Run Code Online (Sandbox Code Playgroud)