Hola usuario de nuestro sitio web, encontramos la solución a lo que andabas buscando, desplázate y la encontrarás a continuación.
Solución:
Otra versión de un hash con un key para cada elemento en su array y valor para el conteo de cada elemento
a = [ 1, 2, 3, 3, 4, 3]
h = Hash.new(0)
a.each v
# h = 3=>3, 2=>1, 1=>1, 4=>1
Dado:
arr = [ 1, 2, 3, 2, 4, 5, 3]
Mi forma favorita de contar elementos es:
counts = arr.group_byi.map [k, v.count]
# => [[1, 1], [2, 2], [3, 2], [4, 1], [5, 1]]
Si necesita un hash en lugar de un array:
Hash[*counts.flatten]
# => 1=>1, 2=>2, 3=>2, 4=>1, 5=>1
Esto producirá los elementos duplicados como un hash con el número de ocurrencias de cada elemento duplicado. Deja que el código hable:
#!/usr/bin/env ruby
class Array
# monkey-patched version
def dup_hash
inject(Hash.new(0)) .select k,v.inject()
end
end
# unmonkeey'd
def dup_hash(ary)
ary.inject(Hash.new(0)) h[e] += 1; h .select v > 1 .inject()
end
p dup_hash([1, 2, "a", "a", 4, "a", 2, 1])
# "a"=>3, 1=>2, 2=>2
p [1, 2, "Thanks", "You're welcome", "Thanks",
"You're welcome", "Thanks", "You're welcome"].dup_hash
# "You're welcome"=>3, "Thanks"=>3
Aquí puedes ver las comentarios y valoraciones de los usuarios
Recuerda comunicar este post si te ayudó.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)