2012-10-04 17 views
17

Tengo el siguiente:cómo agrupar elementos idénticos en serie Rubí

Array = ["John", "Mike", "Bob", "Mike", "Bob"] 

i quieren obtener una salida:

[["Mike", "Mike"], ["Bob", "Bob"], ["John"]] 
+3

¡Bienvenido a StackOverflow! Para obtener una respuesta positiva aquí, es mejor mostrar lo que has intentado. Puede editar su pregunta para mostrar esto. –

Respuesta

32

estoy bastante seguro de que va a tener un problema con el nombre existente Array , pero aquí está el camino.

Array.group_by{|x| x}.values 
+1

¿hay alguna manera de hacerlo con la taquigrafía de proc? –

+1

@maxpleaner puedes hacer 'names = [" John "," Mike "," Bob "," Mike "," Bob "]; names.group_by (&: itself) .values' –

Cuestiones relacionadas