tamaño array ruby arrays count

array - Cuente si hay más de 1 aparición en una matriz de 2d en Ruby



ruby slice (2)

Aquí hay una forma más clara de hacer lo que quiere, sin ninguna de las preocupaciones asociadas.

array.count{|i| i[1] == array.last[1]}

Tengo una matriz ordenada:

array = [[4, 13], [1, 12], [3, 8], [2, 8], [0, 3]]

Lo que me muestra una posición (matriz [n] [0]) y el número de ocurrencias de esa posición (matriz [n] [1]).

Necesito probar para ver si más de un elemento en la matriz tiene la misma cantidad de ocurrencias que el último elemento.

Pensé que podría hacerlo con esto:

array.detect {|i| i[1] == array.last[1] }.length

Pero devuelve 2 para la matriz anterior, y parece que también devuelve 2 para la siguiente matriz:

array = [[4, 13], [1, 12], [3, 8], [2, 3], [0, 3]]

Cuando lo ejecuto sin longitud, siempre devuelve la primera ocurrencia.

¿Hay alguna forma de que esto cuente las ocurrencias?

EDITAR:

Lo siento, haré mi pregunta de seguimiento en una nueva pregunta.


Intenta usar find_all lugar de detect . detect devuelve la primera coincidencia. En su primer ejemplo, esa es la array[3] , que es otra matriz de longitud 2. Es por eso que devuelve 2 (siempre debe devolver 2 o cero para sus matrices). find_all devolverá una matriz de las coincidencias (en lugar de la primera coincidencia) y su longitud será el valor que desee.