2016-02-29 53 views
0

我想要得到一個星期的數組,但相反有他們的月份而不是日期或一天,所以包括今天在內的一個星期將是["Feb", "Feb", "Mar", "Mar", "Mar", "Mar", "Mar"],但我只想要數組顯示何時有變化,所以我想要它要像["Feb","", "Mar", "", "", "", ""]如何擺脫已過濾數組中的重複?

var month = [String]()//this includes the months for the whole week 
var filterdmonth = ["", "", "", "", "", "", ""] 
for(var s = 0; s < month.count; s++){ 
    if(month[s] != filterdmonth[0]){ 
     filterdmonth[s] = month[s] 
     print(filterdmonth) 
    } 

} 

此打印出["Feb", "", "Mar","Mar","Mar","Mar","Mar",]

+0

應該把它們放到一個'Set'中,這樣就不會有重複 – Fonix

+0

我該怎麼做。我不知道如何使用集合 – stackerleet

+0

取決於保持數組中空格的重要性,但集合只是另一種類型的數組,但不允許元素的重複條目。 'var filteredMonth = Set ()''但是你不能包含多個空格,就像你最初的設置 – Fonix

回答

1

我不知道你的輸入是什麼,但如果month["Feb", "Feb", "Mar", "Mar", "Mar", "Mar", "Mar"],那麼這裏就是簡單的東西我得到了工作。

let months = ["Feb", "Feb", "Mar", "Mar", "Mar", "Mar", "Mar"] 
var workingMonth = "" 

let filteredMonths = months.map { month -> String in 
    let result = month != workingMonth ? month : "" 

    if month != workingMonth { 
     workingMonth = month // There is a new month, so update the working month. 
    } 

    return result 
} 

print(filteredMonths)