我有array1
,这是一个哈希数组,array2
是一个整数数组。 array1.size
和array2.size
是10
。我想将array2
中的每个元素添加到array1
中的相应哈希中。因此,array2[0]
会添加到array1[0]
的哈希值中。
我把它编码为:
for x in 0..array1.size
array1[x][:array2_value] = array2[x]
end
我觉得有一种干净的方法可以做到这一点。任何帮助,将不胜感激。
答案 0 :(得分:3)
一种方式:
array1.each_with_index { |h,i| h[:array2_value] = array2[i] }
另:
array1.zip(array2).each { |h,v| h[:array2_value] = v }
如果不改变array1
:
array1.map.with_index { |h,i| h[:array2_value] = array2[i] }
array1.zip(array2).map { |h,v| h[:array2_value] = v }
答案 1 :(得分:1)
array1.map.with_index{|h, i| h.merge(array2_value: array2[i])}
或
array1.each_with_index{|h, i| h.merge!(array2_value: array2[i])}