从数组创建哈希数组的最佳方法是什么?

时间:2018-11-30 02:14:32

标签: ruby

给出此数组:

array = ['one', 'two']

将其转化为类似以下内容的最佳方法是什么?

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

2 个答案:

答案 0 :(得分:6)

使用Array#map,它会遍历您的集合并返回一个数组。您的情况就是直接返回哈希值

array.map { |a| {value: a, label: a} }
# => [{:value=>"one", :label=>"one"}, {:value=>"two", :label=>"two"}]

答案 1 :(得分:1)

最好的方法是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"}]