根据属性删除数组中的特定对象?

jwa*_*s91 4 arrays loops ios swift

我有一系列的饮料配料,想要去除与饮料无关的那些,这是我的代码,但我无法弄清楚如果不符合标准,如何从数组中删除顶部.

我只能在索引路径中删除,如果我们添加更多浇头等,这可能会改变,所以看起来不准确吗?

 for toppings in self.toppings {
            if self.selectedDrink.name == "Tea" {
                if toppings.limit == "C" {
                    self.toppings.remove(at: toppings)
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

从根本上说,如果用户选择茶,它会寻找有限的咖啡浇头,然后我需要删除那些响应"C"属性的那些,但我怎么看?

谢谢您的帮助!

das*_*ght 11

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

一种更简单的方法是过滤数组,并将其分配回toppings属性,如下所示:

toppings = toppings.filter {$0.limit != "C"}
Run Code Online (Sandbox Code Playgroud)