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)
}
3 réponses
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)
}
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])")
}
Cela n'imprimerait que les noms:
Joueurs.foreach () {print ($ 0 ["Nom"])
Questions connexes
De nouvelles questions
swift
Swift est un langage de programmation polyvalent sûr, rapide et expressif développé par Apple Inc. pour ses plateformes et Linux. Swift est open-source. Utilisez la balise uniquement pour les questions sur les fonctionnalités linguistiques ou nécessitant du code dans Swift. Utilisez les balises [ios], [ipados], [macos], [watch-os], [tvos], [cocoa-touch] et [cocoa] pour les questions (indépendantes du langage) sur les plates-formes ou les frameworks.