2015-09-30 90 views
2

我有一個包含數字和空字符串的數組,如["", "2", "4", "", "", "1", "2", ""]。我想將其縮減爲一個數字列表,如[2,4,1,2]Swift - 從數組中刪減元素,將整數字符串轉換爲整數

我的第一個努力將其分解爲兩個步驟,首先去掉空字符串,然後進行字符串到整數的轉換。但是,我的第一步代碼不能按需要工作。

for (index,value) in tempArray.enumerate(){ 
    if value == "" { 
     tempArray.removeAtIndex(index) 
    } 
} 

這失敗,我相信,因爲它使用的是原始的,完整的數組的索引值,雖然第一刪除後,他們不再準確。

什麼是更好的方式來實現我的目標,什麼是最終的方法來轉換整數字符串的結果數組爲一個整數數組?

回答

2

與SWIFT 2,我們可以採取的flatMapInt()優勢:

let stringsArray = ["", "2", "4", "", "", "1", "2", ""] 

let intsArray = stringsArray.flatMap { Int($0) } 

print(intsArray) // [2, 4, 1, 2] 

說明:Int()返回nil如果字符串不包含整數,flatMap忽略nil S和解開可選IntInt()返回。

3
var str = ["", "2", "4", "", "", "1", "2", ""] 

let filtered = str.filter {$0 != "" } 

let intArr = filtered.map {($0 as NSString).integerValue} 
+0

這是一個非常好的答案;我只是因爲他首先發布而給Eric D打上勾號。 –

相關問題