Saltar al contenido

Cómo contar duplicados en Ruby Arrays

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *