2017-06-18 5 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'機能を試してみません:

簡単な方法は、配列をフィルタリングし、そしてこのように、バックtoppingsプロパティにそれを割り当てることですか? – luk2302

+0

どのように見えるでしょうか? – jwarris91

答えて

3

forループでインプレイス除去を実行できますが、索引の混乱を避けるために反復処理を行う必要があるため、扱いにくくなります。

toppings = toppings.filter {$0.limit != "C"} 
関連する問題