Je me demandais comment je pourrais imprimer uniquement les noms ou différents si possible. À ce stade, j'ai un simple pour en boucle l'impression de toute la collection.

var players: [[String: Any]] = [

    ["Name": "Joe Smith",
     "Height": 42,
     "Experience": true,
     "Guardians": "Jime and Jan Smith",
     "Team": ""],

    ["Name": "Jill Tanner",
     "Height": 36,
     "Experience": true,
     "Guardians": "Clara Tanner",
     "Team": ""],

    ["Name": "Bill Bon",
     "Height": 43,
     "Experience": true,
     "Guardians": "Sara and Jenny Bon",
     "Team": ""],
]

for teamSelector in players {
    print(players)
}
-1
Disavio 20 avril 2017 à 23:20

3 réponses

Meilleure réponse

Vous pouvez effectuer les opérations suivantes en utilisant votre exemple, mais mis à jour pour obtenir le nom:

for teamSelector in players {
    print(teamSelector["Name"])
}

Vous pouvez également utiliser map pour imprimer tous les noms:

print(players.map { $0["Name"] })

Une autre option consiste à boucler sur chacun des lecteurs et à convertir le nom sous forme de chaîne, puis à afficher le nom. L'utilisation de flatMap ici garantit que tous les noms sont des chaînes.

for name in players.flatMap({ $0["Name"] as? String }) {
    print(name)
}
1
totiG 20 avril 2017 à 21:12

Swift 3

Pour imprimer les valeurs:

players.values.forEach { (value) in
            print(value)
        }

Pour imprimer le "nom" (qui a appelé "clés"):

players.keys.forEach { (key) in
            print(key)
        }

Dans un autre style, vous pouvez l'écrire comme:

for key in players.keys{
            print("The key is: \(key)")
            print("The value is: \(players[key])")
        }
3
Dekel Maman 20 avril 2017 à 22:28

Cela n'imprimerait que les noms:

Joueurs.foreach () {print ($ 0 ["Nom"])

0
NoLongerContributingToSE 20 avril 2017 à 20:26