Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialMilos Ribera
9,633 PointsUsing switch to extrapolate values from a dictionary and putting it into an array
I'm stuck, and it's so annoying.
I commented every logical thing I had and why I wrote it.
Can you help me, and can you also help me to understand my logical errors?
Thank you so much!
var europeanCapitals: [String] = []
var asianCapitals: [String] = []
var otherCapitals: [String] = []
let world = [
"BEL": "Brussels",
"LIE": "Vaduz",
"BGR": "Sofia",
"USA": "Washington D.C.",
"MEX": "Mexico City",
"BRA": "Brasilia",
"IND": "New Delhi",
"VNM": "Hanoi"]
for (key, value) in world { // I don't know if (key, value) it's a way to rapresente each item is in the dictonary
// Enter your code below
switch (key, value) { // I took this statment thinking to get the elements in a dictonary, so later I decide to get the key
case "BEL": europeanCapitals.append(value) // "in case" it's BEL -> append to europeanCapitals the relative value (I'm not sure about it)
case "BGR": europeanCapitals.append("BGR") // here I try to append the value of the key in the dictonary
case "USA": otherCapitals.append(world["USA"]) // here I tought, in case of key USA, append the value of the dictonary
case MEX: otherCapitals.append("MEX") // here I thought I heve to identify the key of a dictonary without " "
case "BRA": otherCapitals.append(world("BRA")) // ...using other syntax of above
case key: asianCapitals.append(value) // thinking the loop going to use each items of the dictoanry
case "VNM": asianCapitals = asianCapitals + [world(VNM)] // probably other metod to append items to the array (I think it's wrong
case BEL: europeanCapitals.append("BEL") // no more trying :)
default: nil // I think I can also get it out, but how set the default it didn't express
}
// End code
}
2 Answers
Jonathan Ruiz
2,998 PointsHi Milos I think for this challenge you over thought it. The problem has a dictionary and they have two parts the key and the value. When writing a switch statement you only have one thing you will switch on. In this case we have a dictionary and we want to switch on the key and append the value to one of the empty arrays.
switch key {
case "BEL", "LIE", "BGR": europeanCapitals.append(value)
// we switch on the key, for each case we put the keys we are switching then : now we put the empty array we want to append to. The thing we append is this keys value so we append the value
}
This is the first case but I think it should help you solve it just follow this approach.
Jonathan Ruiz
2,998 PointsHappy to help !
Milos Ribera
9,633 PointsMilos Ribera
9,633 PointsThank you so much! Everything clear :)