2 votes

Supprimer uniquement un élément d'un tableau Swift ayant une valeur spécifique

D'accord, cela ne devrait pas être trop difficile, mais le dimanche matin me prouve le contraire...

J'ai un Array avec des structs, et je veux supprimer seulement une struct qui correspond à sa propriété de nom à un String. Par exemple:

struct Person {
   let name: String
}

var myPersons =
[Person(name: "Jim"),
 Person(name: "Bob"),
 Person(name: "Julie"),
 Person(name: "Bob")]

func removePersonsWith(name: String) {
   myPersons = myPersons.filter { $0.name != name }
}

removePersonsWith(name: "Bob")
print(myPersons)

résultats en:

[Person(name: "Jim"), Person(name: "Julie")]

Mais comment puis-je supprimer seulement un seul Bob?

3voto

vadian Points 29149
  • filter filtre tous les éléments qui correspondent à la condition.

  • index renvoie l'index du premier élément qui correspond à la condition.

    func removePersonsWith(name: String) {
        if let index = myPersons.index(where: {$0.name == name}) {
            myPersons.remove(at: index)
        }
    }

Cependant, le nom de la fonction est trompeur. Il est censé être removeAPersonWith ;-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X