Supprimer le tableau de clés dans Ruby Hash
Comment pourrais-je aller sur la suppression d'un tableau de clés dans une table de hachage? Par exemple, vous pouvez appeler le:
hash_array.delete(some_key)
Mais comment puis-je faire cela:
hash_array.delete([key1,key2,key3,...])
sans boucle à travers le tableau inutilement.
source d'informationauteur Artem Kalinchuk | 2012-02-01
Vous devez vous connecter pour publier un commentaire.
Vous pouvez effectuer une itération sur un tableau de clés et de supprimer chacun d'entre eux:
Ne me souviens pas une meilleure solution.
Vous pouvez essayer d'utiliser Dièse#delete_if:
Mise à JOUR
Si vous ne voulez pas effectuer une itération sur matrice de touches, vous pouvez utiliser Ensemble au lieu de
Array
(depuisSet
utiliseHash
que le stockageinclude?
est O(1)):C'est exactement ce que vous cherchez...
Vous pouvez le faire comme ceci sans boucle à travers le tableau inutilement.
Le résultat est stocké dans hash_array
Peut-être il vaut la peine de faire une méthode
Vous pouvez obtenir ce que vous comptez faire avec le "splat opérateur" (
*
).C'est l'équivalent de passage de chaque touche comme un argument séparé.
ActiveSupport (partie de Rails) implémente exactement ce que Hachage#exception et de Hachage#sauf!
Voir http://apidock.com/rails/v4.0.2/Hash/except%21