Надеюсь, что это поможет - дайте мне знать, как вы справляетесь с этим или если у вас есть какие-либо вопросы.
наиболее эффективный способ найти конкретный хеш в массиве и заменить его значения на месте, чтобы массив тоже менялся?
Пока у меня есть этот код, но в реальном приложении с множеством данных это становится самой медленной частью приложения, которая, вероятно, теряет память, поскольку неограниченная память постоянно увеличивается, когда я выполняю эту операцию над каждым сообщением 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"}}]