Estoy intentando obtener un subconjunto de claves para cada hash en una matriz.¿Cómo puedo filtrar una matriz de valores hash para obtener solo las claves en otra matriz?
Los hashes son en realidad mucho más grande, pero pensé que esto es más fácil de entender:
[
{
id:2,
start: "3:30",
break: 30,
num_attendees: 14
},
{
id: 3,
start: "3: 40",
break: 40,
num_attendees: 4
},
{
id: 4,
start: "4: 40",
break: 10,
num_attendees: 40
}
]
Quiero obtener sólo los id
y start
valores.
que he probado:
return_keys = ['id','start']
return_array = events.select{|key,val| key.to_s.in? return_keys}
pero esto devuelve una matriz vacía.
Para n claves en 'events' y teclas M en cada uno de hash, y teclas P de la matriz interior, esto se realiza en ** O (MNP) ** velocidad, lo que podría ser paralizantemente lento. – tadman
@tadman Ver la respuesta actualizada con la solución O (N). –
@tadman Sin embargo, supongo que es realmente O (NP)? No creo que haya nada más rápido que eso. Asumiendo que P es muy pequeño, no debería afectar la complejidad del tiempo. –