Comment faire pour supprimer un élément d'une valeur donnée à partir d'un tableau de Swift
Je veux supprimer tous les éléments de valeur de x à partir d'un tableau qui contient x, y et z des éléments
let arr = ['a', 'b', 'c', 'b']
Comment puis-je supprimer tous les éléments de la valeur " b " de s'arr?
Vous devez vous connecter pour publier un commentaire.
Un filtre:
'
, vous devez utiliser"
. donc, la réponse seralet something = arr.filter{$0 != "b"}
Fonctionne sur Swift 3.0.
filter
solutionfilter
. Je suppose que la comparaison comme ça n'a pas beaucoup de sens de toute façon puisque les résultats dépendent fortement de la fréquence et de la façon dont uniformément distribués sont les éléments à supprimer dans le tableau source.filter
n'a jamais été plus rapide gist.github.com/getaaron/11b751b15489b0b95e9econtains
etindex(of:)
. Il serait beaucoup plus rapide d'utiliser l'index(de), car il renvoie une option.ÉDITÉ selon les commentaires:
J'aime cette approche:
Réponse originale à cette question (avant montage):
if
parwhile
.Dans Swift 3 je n'ai tout simplement:
.filtre .de tri et de .carte, idéal pour gagner du temps et de résoudre beaucoup de problèmes avec peu de code.
Cet article a de bons exemples et d'expliquer les différences et comment ils fonctionnent: https://useyourloaf.com/blog/swift-guide-to-map-filter-reduce/
Si vous avez besoin de modifier initiale tableau, vous pouvez utiliser la fonction
removeAll(where:)
qui est disponible dans Swift 4.2/Xcode 10:Toutefois, si vous êtes en utilisant Xcode 9 vous pouvez trouver cette fonction dans Xcode9to10Preparation (cette bibliothèque fournit des implémentations de nouvelles fonctions à partir de Xcode 10).
Une approche générale consiste à exploiter la première classe des procédures. (Cependant, cette approche est beaucoup plus puissant que ce qui est nécessaire pour votre question.) Pour illustrer, disons que vous voulez éviter "Justin" à plusieurs reprises dans de nombreuses collections.
Avec cela, vous évitez à plusieurs reprises la création d'une fermeture à chaque fois que vous voulez éviter de Justin. Voici
notEqualTester
qui, étant donné unthat
, renvoie une fonction dethis
qui renvoiethis != that
.Le retour de fermeture pour
this
capture la valeur dethat
- ce qui peut être utile lorsquethat
n'est plus disponible.