Код, который я использую сейчас, дает только один режим, но не дает оба, если есть 2 режима.
func Mode() -> Float {
var occurances: [Int: Int] = [:]
for number in array {
if var value = occurances[number] {
occurances[number] = value + 1
} else {
occurances[number] = 1
}
}
var highestKeyPair: (key: Int, value: Int) = (0,0)
for (key,value) in occurances {
highestKeyPair = (value > highestKeyPair.value) ? (key,value): highestKeyPair
}
let mode = highestKeyPair.key
return Float(mode)
}