Busque y reemplace hash específicos y sus valores dentro de la matriz

Cuál es el método más eficiente para encontrar hash específicos dentro de la matriz y reemplazar sus valores en el lugar, para que la matriz también cambie?

Hasta ahora tengo este código, pero en una aplicación del mundo real con muchos datos, se convierte en la parte más lenta de la aplicación, que probablemente pierde memoria, ya que la memoria sin límites crece constantemente cuando realizo esta operación en cada mensaje de websocket. @

array = 
  [ 
    { id: 1,
      parameters: {
        omg: "lol"
     },
     options: {
         lol: "omg"
      }
    },
    { id: 2,
      parameters: {
        omg: "double lol"
      },
      options: {
        lol: "double omg"
      }
    }
  ]

selection = array.select { |a| a[:id] == 1 }[0]
selection[:parameters][:omg] = "triple omg"
p array
# => [{:id=>1, :parameters=>{:omg=>"triple omg"}, :options=>{:lol=>"omg"}}, {:id=>2, :parameters=>{:omg=>"double lol"}, :options=>{:lol=>"double omg"}}]

    

Respuestas a la pregunta(1)

Su respuesta a la pregunta