Tengo una variedad de hashes, @fathers.
a_father = { "father" => "Bob", "age" => 40 }
@fathers << a_father
a_father = { "father" => "David", "age" => 32 }
@fathers << a_father
a_father = { "father" => "Batman", "age" => 50 }
@fathers << a_father
¿Cómo puedo buscar en esta matriz y devolver una matriz de hashes para los que un bloque devuelve verdadero?
Por ejemplo:
@fathers.some_method("age" > 35) #=> array containing the hashes of bob and batman
Gracias.

@fathers.find {|father| father["age"] > 35 }en su lugar.esto devolverá el primer partido
fuente
#select, pero todo vale para su caso de uso.#detectregresaránilsi no se encuentra una coincidencia, mientras que#select, en la respuesta de @ Jordan, regresará[].findlugar dedetectun código más legiblefindSin embargo, puede ser confuso en los rieles.selectydetectno son iguales,selectatravesarán toda la matriz, mientras quedetectse detendrán tan pronto como se encuentre la primera coincidencia. Si estás buscando UN partido@fathers.select {|f| f["age"] > 35 }.firstcontra@fathers.detect {|f| f["age"] > 35 }rendimiento y legibilidad, mi voto es paradetectsi su matriz se ve así
Y desea saber si algún valor ya está presente en su matriz. Utilice el método de búsqueda
Esto devolverá el objeto si Hitesh está presente en el nombre, de lo contrario, devuelve nil
fuente
"hitesh", no devolverá el hash. ¿Cómo podemos explicar también el uso de mayúsculas y minúsculas en tales casos?