给出此数组:
array = ['one', 'two']
将其转化为类似以下内容的最佳方法是什么?
[{value: 'one', label: 'one'}, {value: 'two', label: 'two'}]
答案 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"}]