如何通过一组键和值对,然后将它们分配给一个新的Hash对象?

时间:2017-08-31 20:58:21

标签: arrays ruby hash

array = Array.new
y  = Hash.new 
x = Hash.new
y["First"] = "Moses"
y["Last"] = "Kim"
x["First"] = "John"
x["Last"] = "Snow"
array.push(y)
array.push(x)

p array



hash = Hash.new
hash['listing'] = Hash.new
y = array.each do |a|
  a.each do |key,value|
    hash['listing'][key] = value
  end
end

p hash

我希望数据如下:

{ listing: { First: Moses, Last: Kim}, { First: John, Last: Snow}}

1 个答案:

答案 0 :(得分:1)

{ listing: { First: Moses, Last: Kim}, { First: John, Last: Snow}}无效。

子哈希需要在数组中: { listing: [{ First: Moses, Last: Kim}, { First: John, Last: Snow}]}

这可以通过以下代码构建:

array = Array.new
y  = Hash.new 
x = Hash.new
y["First"] = "Moses"
y["Last"] = "Kim"
x["First"] = "John"
x["Last"] = "Snow"
array.push(y)
array.push(x)
{ listing: array }

或者只是 { listing: [x, y]}