2016-02-03 55 views
2

所以我有一個Int數組,我嘗試創建一個從數組中刪除某個值的函數。但是,removeAtIndex()函數僅刪除第一個匹配項,removeLast()僅刪除最後一個。我嘗試枚舉整個數組,但最終導致數組索引超出範圍錯誤,這可能是由於從數組中刪除項目時發生的重新移位所致。在Swift數組中刪除所有出現的值

for (index, value) in connectionTypeIDs.enumerate() { 
      if (value == connectionTypeToDelete){ 
       connectionTypeIDs.removeAtIndex(index) 
      } 
     } 

有關如何完成此任務的任何想法?

回答

7

最快的方法是使用過濾器。我不知道這是回答你的問題,但你可以看看這個:

// remove 1 from array 
arr = arr.filter{$0 != 1} 
+0

在Swift中,你*可以*在枚舉過程中改變數組。問題是索引不再匹配。 –

+0

@MartinR謝謝,我不知道。我更新了我的答案。 – Greg

+0

這似乎工作!謝謝! :) – ardevd