Каков наилучший способ создать массив хэшей из массива? - PullRequest
0 голосов
/ 30 ноября 2018

Учитывая этот массив:

array = ['one', 'two']

, как лучше всего превратить это в нечто вроде следующего?

[{value: 'one', label: 'one'}, {value: 'two', label: 'two'}]

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Лучший способ - Array#map, но просто попробуйте другой способ, проверьте также Enumerable#each_with_object:

array = ['one', 'two']
array.each_with_object([]) { |e, a| a << {value: e, label: e} }
#=> [{:value=>"one", :label=>"one"}, {:value=>"two", :label=>"two"}]
0 голосов
/ 30 ноября 2018

Используйте Array#map, который перебирает вашу коллекцию и возвращает массив.В вашем случае просто верните хеш напрямую

array.map { |a| {value: a, label: a} }
# => [{:value=>"one", :label=>"one"}, {:value=>"two", :label=>"two"}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...