我想插入多个哈希到一个数组中,该数组将创建一个哈希数组。但是每次我向数组添加一个新的散列值时,它都会覆盖之前的散列值。任何想法是怎么回事?ruby - 在ruby中插入多个哈希到阵列
partArray = []
partHash = {}
partHash["name"] = "Item1"
partHash["owner"] = "Item1"
#Insert first hash into array
partArray << partHash
puts partArray
#new set of key, value pairs
#to be appended to array
partHash["name"] = "Item2"
partHash["owner"] = "Item2"
#Append second hash into array
partArray << partHash
puts partArray
输出:
{"name"=>"Item1", "owner"=>"Item1"}
new Array is :
{"name"=>"Item2", "owner"=>"Item2"}
{"name"=>"Item2", "owner"=>"Item2"}
我不知道为什么在第一哈希值进行覆盖。任何帮助表示赞赏。
这也许会提供一些线索:'p partArray.map(:OBJECT_ID)' –
得到相同的哈希OBJECT_ID,具有不同的值。 {“name”=>“Item1”,“owner”=>“Item1”} [70094101888900] new Array is: {“name”=>“Item2”,“owner”=>“Item2”} { “name”=>“Item2”,“owner”=>“Item2”} [70094101888900,70094101888900] – danynl