基于属性删除数组中特定的对象?

7
我有一个饮料调料的数组,想要移除与饮料无关的调料。这是我拥有的代码,但我不知道如何在不符合条件的情况下从数组中删除此调料。
我只能按索引路径移除,但如果我们添加了更多的调料等,这个索引路径会发生变化,所以似乎不准确?
for toppings in self.toppings {
    if self.selectedDrink.name == "Tea" {
        if toppings.limit == "C" {
            self.toppings.remove(at: toppings)
        }
    }
}

如果用户选择了茶,就需要查找仅限于咖啡的配料,然后我需要删除那些响应“C”属性的配料,但我不知道该如何操作。

感谢您的帮助!


为什么不试一下filter函数呢? - luk2302
那会是什么样子? - jwarris91
1个回答

16

你可以使用 for 循环进行就地删除,但这可能会很棘手,因为你需要迭代回来以避免干扰索引。

一个更简单的方法是对数组进行过滤,并将其重新赋值给 toppings 属性,像这样:

toppings = toppings.filter {$0.limit != "C"}

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