a = ["ab", "dc", "vv", "dd"]
a.each_with_index.map { |v, i| { ("prefix_" + i.to_s).to_sym => v }}
=> [{:prefix_0=>"ab"}, {:prefix_1=>"dc"}, {:prefix_2=>"vv"}, {:prefix_3=>"dd"}]
I want to get a hash as a return value. How can I do this?
a = ["ab", "dc", "vv", "dd"]
a.each_with_index.map { |v, i| { ("prefix_" + i.to_s).to_sym => v }}
=> [{:prefix_0=>"ab"}, {:prefix_1=>"dc"}, {:prefix_2=>"vv"}, {:prefix_3=>"dd"}]
I want to get a hash as a return value. How can I do this?
This is one way :
a = ["ab", "dc", "vv", "dd"]
Hash[a.map.with_index { |v, i| ["prefix_#{i}".to_sym, v] }]
# => {:prefix_0=>"ab", :prefix_1=>"dc", :prefix_2=>"vv", :prefix_3=>"dd"}
In Ruby 2.1 >=, use Array#to_h as below :-
a.map.with_index { |v, i| ["prefix_#{i}".to_sym, v] }.to_h