Swift for-in loop dictionary experiment
They're just asking you to keep track of which number category the largest number belongs to:
let interestingNumbers = [ "Prime": [2, 3, 5, 7, 11, 13], "Fibonacci": [1, 1, 2, 3, 5, 8], "Square": [1, 4, 9, 16, 25],]var largest = 0var largestkind = ""for (kind, numbers) in interestingNumbers { for number in numbers { if number > largest { largest = number largestkind = kind } }}largestlargestkind
Alternately you can use closure to make the tasks simpler.
The for
loop calculate the sum of each series.
The final reduce finds the series tuple that contains maximum number.
let interestingNumbers = [ "Prime": [2, 3, 5, 7, 11, 13], "Fibonacci": [1, 1, 2, 3, 5, 8], "Square": [1, 4, 9, 16, 25],]var sums = Array<(String, Int)>()for (kind, numbers) in interestingNumbers { sums = sums + [(kind, numbers.reduce(0, +))]}let maxSeries = sums.reduce(("", Int.min), { $0.1 > $1.1 ? $0 : $1 })println(sums)println(maxSeries)
Here it from playground using Xcode 8.3 and Swift 3.0
let interestingNumbers = ["Prime": [2, 3, 5, 7, 11, 13],"Fibonacci": [1, 1, 2, 3, 5, 8],"Square": [1, 4, 9, 16, 25],]let largest = interestingNumbers.map{$0.value}.flatMap{$0}.max()print(largest)
Optional(25)