Il y a peut-être un meilleur moyen, mais en attendant, tu peux parcourir le tableau à la recherche du nombre voulu (18 dans ton exemple), et ensuite tu stockes la clé associée (nombre7 dans ton exemple). Ensuite, tu peux utiliser removeValue(forKey:).
Mais dans ce cas là, il faudrait que tes valeurs soient uniques, sinon, si tu as deux valeurs 18, laquelle choisir ?
Mais si, cela fonctionne exactement de la même manière :
let monDico = ["nombre1":2,
"nombre2":18,
"nombre3":13,
"nombre4":18]
let valeurMaudite = 18
let dico2 = monDico.filter { $0.value != valeurMaudite }
print ("Avant : ", monDico)
print ("Après : ", dico2)
Avant : [“nombre1”: 2, “nombre2”: 18, “nombre3”: 13, “nombre4”: 18]
Après : [“nombre1”: 2, “nombre3”: 13]
EDIT :
let dico2 = monDico.filter { $0.value != valeurMaudite }
.filter fait une copie du dictionnaire monDico en ne conservant que les éléments correspondants à la condition de filtrage (avoir une valeur différente de la variable valeurMaudite).
Alexandre, tu énumères le contenu d’un dictionnaire avec un .filter, tout en le modifiant lui-même. Je ne me risquerais jamais à faire ce genre de chose, de peur d’un effet de bord.
Merci @Draken pour ces informations !
Je ne savais pas que filter faisait une copie du tableau avec les nouvelles valeurs. Il est effectivement bien mieux de faire comme tu as fait !