Tengo la siguiente matriz:Rieles: Quitar elemento de la gama de valores hash
array = [{"email"=>"[email protected]", "name"=>"Test"},
{"email"=>"[email protected]", "name"=>"Test A"},
{"name"=>"Test B", "email"=>"[email protected]"},
{"email"=>"[email protected]", "name"=>"Test C"},
{"name"=>"Test D", "email"=>"[email protected]"},
{"email"=>"[email protected]"},
{"name"=>"Test F", "email"=>"[email protected]"}]
tengo una lista de correos electrónicos "lista negra", por ejemplo:
blacklist = ["[email protected]"]
quiero hacer algo como esto:
array - blacklist
# => should remove element {"email"=>"[email protected]", "name"=>"Test C"}
Seguramente hay una manera atractiva-Rubí de hacer esto con .select o algo, pero no han sido capaces de averiguarlo. He intentado esto en vano:
array.select {|k,v| v != "[email protected]"} # => returns array without any changes
brillante! gracias por el rápido cambio :) de hecho, respondiste tan rápido que ni siquiera puedo "aceptar" la respuesta en el sistema de SO. – MorningHacker
también hay una función de exclusión que es y alias para! Include –
@Darren: El único inconveniente es que ['exclude?'] (Http://api.rubyonrails.org/classes/Enumerable.html#method-i- exclude-3F) es una extensión de Rails y eso llevaría a un territorio doblemente negativo :) Probablemente iría con 'reject' /' include? '. –