2017-06-18 88 views
2

我有一个饮料配料阵列,并希望删除与饮料不相关的那些,这是我有的代码,但我无法弄清楚如果不在标准范围内如何从阵列中删除顶部。删除基于属性的数组中的特定对象?

我只能删除在索引路径,这可以改变,如果我们添加更多的配料等,所以没有看起来准确?

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

Esentially如果用户选择了茶它看起来限制了咖啡的配料,然后我需要删除那些为“C”属性回应的,但我不能看?

感谢您的帮助!

+0

为什么不干脆试试'filter'功能? – luk2302

+0

那会怎样? – jwarris91

回答

3

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

一个更简单的方法是将滤镜阵列,并将其分配回toppings财产,像这样:

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