meilleure façon de supprimer des chaînes de caractères en tableau avec Ruby
permet de dire que j'ai ce tableau:
array = ["str1", "str2", "str3", "str4", "str5", "str6", "str7", "str8"]
ce que je fais:
array.delete_if {|i| i == "str1" || i == "str3" || i == "str5"}
j'ai eu:
["str2", "str4", "str6", "str7", "str8"]
existe-il une meilleure approche en ruby pour ce faire ?
OriginalL'auteur Said Kaldybaev | 2012-09-14
Vous devez vous connecter pour publier un commentaire.
Vous pourriez faire ceci:
Notez que cela renvoie un nouveau tableau avec
"str1"
,"str2"
, et"str3"
supprimé, plutôt que de modifiyingarray
directement (commedelete_if
n'). Vous pouvez réattribuer le nouveau tableau dearray
, de façon concise, comme ceci:array -= %w[ ... ]
ferait une réaffectation mais ne modifierait pas les références pour le tableau d'origine.Bonne idée, je l'ai ajouté à l'original de la réplique.
juste pour que les gens savent, %w{mot mot2} n'accepte pas de variables contenant des chaînes de caractères. Je ne savais pas et il ne sera pas supprimer la chaîne à partir de la matrice. J'ai utilisé
array -= [variable_containing_string]
pour le faire fonctionnerOriginalL'auteur Alex D
OriginalL'auteur mminski