2016-02-29 3 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 filterMonth = Установить ()', но вы не сможете включать несколько пробелов, например, как вы его изначально установили. – 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) 
Смежные вопросы