Массив хешей Ruby находит значения по ключу

-5

У меня есть массив, как показано ниже.

[{500 => {"id" => 1, "name" => "Hock Tong Bee Pte Ltd/Угловые каменные вина", "created_at" => Thu, 19 Jan 2017 18:10:35 UTC +00: 00, "updated_at" => Thu, 19 Jan 2017 18:10:35 UTC +00: 00, "website" => nil, "status" => nil, "industry_type_id" => 1, "major_category_id" => 1, "minor_category_id" => 75, "save_as_draft" => false, "company_id" => 1}}, {600 => {"id" => 2, "name" => "Continental Wines", "created_at" => Thu, 19 января 2017 18:10:35 UTC +00: 00, "updated_at" => Thu, 19 января 2017 18:10:35 UTC +00: 00, "website" => nil, "status "=> nil," industry_type_id "=> 1," major_category_id "=> 1," minor_category_id "=> 75," save_as_draft "=> false," company_id "=> 2}}]

У меня есть ключ, подобный 500/600 из этого массива, который мне нужен, чтобы получить этот объект. Мне нужно написать один метод, я передам только ключ, который должен вернуть соответствующий объект. Например, если я посылаю ключ, то результат 500 должен быть

{"id" => 1, "name" => "Hock Tong Bee Pte Ltd/Угловые каменные вина", "created_at" => Thu, 19 Jan 2017 18:10:35 UTC +00: 00, "updated_at" => Thu, 19 Jan 2017 18:10:35 UTC +00: 00, "website" => nil, "status" => nil, "industry_type_id" => 1, "major_category_id" => 1, "minor_category_id" => 75, "save_as_draft" => false, "company_id" => 1}

У кого-нибудь есть идея о том, как добиться этого в Ruby?

спросил(а) 2017-01-25T20:56:00+03:00 2 года, 10 месяцев назад
1
1 ответ
56

Я считаю, что простой метод сокращения должен работать:

hash = [{500=>{"id"=>1, "name"=>"Hock Tong Bee Pte Ltd/ Corner stone wines", "created_at"=>"Thu, 19 Jan 2017 18:10:35 UTC +00:00", "updated_at"=>"Thu, 19 Jan 2017 18:10:35 UTC +00:00", "website"=>nil, "status"=>nil, "industry_type_id"=>1, "major_category_id"=>1, "minor_category_id"=>75, "save_as_draft"=>false, "company_id"=>1}}, {600=>{"id"=>2, "name"=>"Continental Wines", "created_at"=>"Thu, 19 Jan 2017 18:10:35 UTC +00:00", "updated_at"=>"Thu, 19 Jan 2017 18:10:35 UTC +00:00", "website"=>nil, "status"=>nil, "industry_type_id"=>1, "major_category_id"=>1, "minor_category_id"=>75, "save_as_draft"=>false, "company_id"=>2}}]
your_value = hash.reduce({}) { |h, v| h.merge v }[500]

ответил(а) 2017-01-25T21:13:00+03:00 2 года, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема