Соедините два значения ха sh, чтобы сформировать ха sh в ruby - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть га sh с ключами «имя_параметра» и «имя_параметра», и я хочу получить га sh с одной парой ключ-значение, значение «имя_параметра» является ключом, а значение «parameter_value» является значением. Ха sh выглядит примерно так:

p = {"parameter_name"=>"NumberOfRetries", "parameter_value"=>"3"}

Я хочу, чтобы вывод был похож,

{"NumberOfRetries"=>"3"}

Я пробовал:

a = p.values.map {|v| v1,v2=v[0],v[1]; {v1=>v2} }

но это не возвращает правильный вывод, и это дает следующее:

[{"N"=>"u"}, {"3"=>nil}]

Может кто-нибудь помочь мне с этим? Спасибо.

Ответы [ 2 ]

3 голосов
/ 12 февраля 2020

Попробуйте это.

a = Hash[*p.map(&:last)]
2 голосов
/ 13 февраля 2020

У меня есть ha sh с ключами "имя_параметра" и "имя_параметра", и я хочу создать га sh с одной парой ключ-значение, значение "имя_параметра" является ключом и значением «parameter_value» является значение.

Чтобы получить значение "parameter_name", вы должны использовать: (для вашего примера ha sh p)

p["parameter_name"] #=> "NumberOfRetries"

для значения "parameter_value":

p["parameter_value"] #=> "3"

га sh с одной клавишей / значение пара создается с помощью: (назначено a)

a = { key => value }

Использование значения "paramter_name" в качестве ключа и значения "parameter_value" в качестве значения дает:

a = { p["parameter_name"] => p["parameter_value"] }
#=> { "NumberOfRetries" => "3" }

Обращение к значениям ha sh по их ключам гарантирует, что это работает независимо от порядка ha sh или при наличии несвязанных пар ключ / значение, например:

p = { "parameter_value"=>"3", "foo"=>"bar", "parameter_name"=>"NumberOfRetries" }

a = { p["parameter_name"] => p["parameter_value"] }
#=> { "NumberOfRetries" => "3" }
...