Учитывая этот массив:
array = ['one', 'two']
, как лучше всего превратить это в нечто вроде следующего?
[{value: 'one', label: 'one'}, {value: 'two', label: 'two'}]
Лучший способ - Array#map, но просто попробуйте другой способ, проверьте также Enumerable#each_with_object:
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"}]
Используйте Array#map, который перебирает вашу коллекцию и возвращает массив.В вашем случае просто верните хеш напрямую
array.map { |a| {value: a, label: a} } # => [{:value=>"one", :label=>"one"}, {:value=>"two", :label=>"two"}]