2017-06-18 128 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"}