¿Cómo puedo encontrar un valor en Array usando Ruby 1.8.7?Buscar valor en Array
Respuesta
supongo que usted está tratando de encontrar si existe un cierto valor dentro de la matriz, y si ese es el caso, se puede usar una matriz # include (valor):?
a = [1,2,3,4,5]
a.include?(3) # => true
a.include?(9) # => false
Si significa algo más, consulte el Ruby Array API
Usaría el índice Array #, pero consultar la API Ruby Array es un gran consejo. –
puede usar Array.select o Array.index para hacer eso.
Uso:
myarray.index "valuetoFind"
que le devuelva el índice del elemento que desee o nula si la matriz no contiene el valor.
¿Le gusta a esto?
a = [ "a", "b", "c", "d", "e" ]
a[2] + a[0] + a[1] #=> "cab"
a[6] #=> nil
a[1, 2] #=> [ "b", "c" ]
a[1..3] #=> [ "b", "c", "d" ]
a[4..7] #=> [ "e" ]
a[6..10] #=> nil
a[-3, 3] #=> [ "c", "d", "e" ]
# special cases
a[5] #=> nil
a[5, 1] #=> []
a[5..10] #=> []
o ¿como?
a = [ "a", "b", "c" ]
a.index("b") #=> 1
a.index("z") #=> nil
Gracias por responder.
lo hice así:
puts 'find' if array.include?(value)
Sé que esta pregunta ya ha sido contestada, pero vine aquí en busca de una forma de filtrar elementos de una matriz basada en algunos criterios. Así que aquí está mi ejemplo solución: usar select
, encuentro todas las constantes de la clase que comienzan con "RUBY_"
Class.constants.select {|c| c.to_s =~ /^RUBY_/ }
ACTUALIZACIÓN: Mientras tanto he descubierto que el arreglo # grep funciona mucho mejor. Para el ejemplo anterior,
Class.constants.grep /^RUBY_/
hizo el truco.
Mientras tanto, he descubierto que Array # grep funciona mucho mejor. Incluso para el ejemplo anterior, 'Class.constants.grep/^ RUBY_ /' hizo el truco. – mydoghasworms
Esta respuesta es para todos los que se dan cuenta de que la respuesta aceptada no aborda la pregunta tal como está escrita actualmente.
La pregunta se pregunta cómo encontrar un valor en una matriz. La respuesta aceptada muestra cómo verificar si existe un valor en una matriz.
Ya existe un ejemplo en el que se usa index
, por lo que proporciono un ejemplo con el método select
.
1.9.3-p327 :012 > x = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
1.9.3-p327 :013 > x.select {|y| y == 1}
=> [1]
@MarkThomas, por favor, indique la parte de mi respuesta que afirma que es una afirmación incorrecta y con gusto la actualizaré. Supongo que estamos usando el inglés aquí (no las definiciones de las palabras). Y cuando miles de personas buscan "ruby FIND value in array" en Google, ven esta pregunta como el primer resultado, así que estoy seguro de que a todos les encantaría obtener la respuesta correcta. –
Además, @MarkThomas si tenía razón, entonces esta pregunta debería cerrarse por ser un duplicado de http://stackoverflow.com/questions/1986386/check-if-value-exists-in-array-in-ruby, pero no está una diferencia funcional entre "encontrar" y "verificar la existencia" en una matriz. –
Soy alérgico a la gente que resucita viejas preguntas y proporciona poca o ninguna sustancia. Esto pasa mucho En su caso, aunque 'select' ya se proporcionó como respuesta en 2009, proporcionó un fragmento de muestra que es un poco mejor. Entonces, después de repensarlo, me retracto de lo que dije antes. –
Usando Array#select
le dará una serie de elementos que cumplan los criterios.Pero si usted está buscando una manera de conseguir el elemento de la matriz que reúna sus criterios, Enumerable#detect
sería un mejor camino a seguir:
array = [1,2,3]
found = array.select {|e| e == 3} #=> [3]
found = array.detect {|e| e == 3} #=> 3
De lo contrario habría que hacer algo torpe como:
found = array.select {|e| e == 3}.first
Si desea encontrar un valor de matriz, utilice Array#find
arr = [1,2,6,4,9]
arr.find {|e| e%3 == 0} #=> 6
arr.select {|e| e%3 == 0} #=> [ 6, 9 ]
6.in?
Para saber si existe un valor en una matriz, excepto #includes?
, se También se puede utilizar cuando #in?
con ActiveSupport, que funciona para cualquier objeto responde a #include?
:
arr = [1, 6]
6.in? arr
#=> true
- 1. Cómo buscar una cadena en String array
- 2. buscar matriz asociativa por valor
- 3. Linq Donde el valor está en Array
- 4. Buscar clave por valor
- 5. Buscar coincidencia de valor parcial en una matriz
- 6. valor Buscar clave en la cadena de matriz
- 7. Buscar nodo TreeView por valor
- 8. Buscar valor mínimo en una columna
- 9. Buscar valor específico en std :: mapa
- 10. PHP Array stdClass Object - Valor del eco
- 11. pasar un array como valor en un DbParameter ado.net
- 12. Añadir nuevo valor a un array existente en JavaScript
- 13. ActiveRecord, Buscar por valor del atributo anidado
- 14. Buscar el valor asignado del mapa
- 15. Buscar XElement por valor de atributo
- 16. Buscar ruby hash de valor vacío
- 17. javascript array Y asociativo indexado?
- 18. jquery buscar clase y obtener el valor
- 19. ¿Diferencias significativas en Array vs Array List?
- 20. Rubí: Array contenida en Array, cualquier orden
- 21. Buscar valor dentro de la columna BLOB en MySQL
- 22. Buscar un valor para una clave determinada en un HashMap
- 23. Buscar el índice de un valor en una matriz
- 24. Buscar objetos con el mismo valor de propiedad en NSMutableSet
- 25. Cómo buscar un valor específico en las claves del Registro
- 26. Buscar recursivamente un valor en variables globales y sus propiedades
- 27. C++ get index of element of array por valor
- 28. 2D Array. Establecer todos los valores a valor específico
- 29. php array assign copiando valor o por referencia?
- 30. CoffeeScript “Array()” vs “new Array()”
Lo siento por este tipo de pregunta, soy novato aquí, y estoy aprendiendo a utilizar esta herramienta, voy a tratar encuentra las respuestas antes de publicarlas aquí. –
Para todos los que se quejan de este tipo de pregunta: por favor, lea las preguntas frecuentes: "Ninguna pregunta es demasiado trivial o demasiado" novato "'. Si no te gusta la pregunta, no la respondas, y deja que alguien más lo haga. Si la pregunta ya se ha formulado y respondido en SO, entonces seguro, márcala como un duplicado. Pero no hay ninguna razón para regañar a los recién llegados por ser nuevos. –