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 
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.