Obtener sólo algunos elementos de un Arra y

Hola, ¿me podéis dar una pista de qué método XXXXXX necesito para lo
siguiente?

Tengo un array de arrays:

array = [
[1,1], [1,2], [2,0], [2,5], [3,1]
]

Quiero obtener esto:

[
[1,1], [2,0], [3,1]
]

Es decir, quedarme sólo con los arrays que no tengan repetido su primer
elemento.

Me suena que esto se hacía así:

array.XXXXXX {|a,b| a[0] =~ b[0]}

pero no estoy muy seguro, y en cualquier caso no encuentro ese
método “XXXXXXX” (creo que he mirado todos los métodos de Array sin
encontrarlo.

¿Una pista por favor? Gracias.

El Viernes, 14 de Marzo de 2008, Iñaki Baz C. escribió:

]

Es decir, quedarme sólo con los arrays que no tengan repetido su primer
elemento.

Me suena que esto se hacía así:

array.XXXXXX {|a,b| a[0] =~ b[0]}

Hola, finalmente me he dado cuenta de que no necesito como resultado ese
array:
[ [1,1], [2,0], [3,1] ]

sino que me sirve con el primer valor de cada elemento, y eso lo puedo
obtener
así:

array.collect{|a| a[0]}.uniq
=> [1, 2, 3]

Saludos :slight_smile:

2008/3/14 Iñaki Baz C. [email protected]:

pero no estoy muy seguro, y en cualquier caso no encuentro ese
simplelogica.net

El método que buscas es select, pero creo que tienes el bloque mal:

array.select { |a| a.first != a.last }

Suerte.

El Viernes, 14 de Marzo de 2008, Daniel R.
Troitiño escribió:> El método que buscas es select, pero creo que tienes el bloque mal:

array.select { |a| a.first != a.last }

No, eso devuelve los elementos que cumplan la condición de que, siendo un
Array, su elemento [0] sea distinto que el [1], pero yo no quería eso,
sino
quedarme con aquellos que tengan el [0] distinto. O sea, que el [0]
fuese “uniq” en el array final.

Pero como ya decía en otro correo que he mandado, lo he resuelto mucho más
fácilmente pues me sirve con alacenar dichos valores [0] en vez de el
array
de arrays.

Saludos y gracias.