我有一個快速數組「Monthdata」,我想在每個月數組中追加每個第二個值。Swift將每第二個項目追加到數組
var monthData = []
let months = ["Jul 12","Aug 12","Sep 12","Oct 12"]
for month in months {
self.monthData.append(month)
}
所以基本上我的monthData陣列的樣子:
["Aug 12","Oct 12"]
我有一個快速數組「Monthdata」,我想在每個月數組中追加每個第二個值。Swift將每第二個項目追加到數組
var monthData = []
let months = ["Jul 12","Aug 12","Sep 12","Oct 12"]
for month in months {
self.monthData.append(month)
}
所以基本上我的monthData陣列的樣子:
["Aug 12","Oct 12"]
嘗試使用模運算符(%)
var monthData = Array<String>()
let months = ["Jul 12","Aug 12","Sep 12","Oct 12"]
var i : Int = 1
for month in months{
if(i%2 == 0){
monthData.append(month)
}
i = i + 1
}
println(monthData)
輸出:
[ 8月12日,10月12日]
您還可以使用迅速陣列filter
方法來獲取過濾陣列,
monthData = months.filter{ (dataValue) in (find(months, dataValue)! % 2 != 0) }
有一個更緊湊的版本,以濾除元素的索引的數組。
如何在一個數組(SWIFT 2.0)找到每第N個元件的一個例子:
let array = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
let n = 2
let filteredArray = array.enumerate().flatMap { $0.index % n == 0 ? $0.element : nil }
// filteredArray = ["0", "2", "4", "6", "8"]
夫特3(基於@ maxkonovalov的回答)
let array = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
let step = 2
let filtered = array.enumerated().flatMap { $0.offset % step == 0 ? $0.element : nil }
// filtered: ["0", "2", "4", "6", "8"]