在ruby中创建哈希数组

我想在ruby中创建一个哈希数组:

arr[0] "name": abc "mobile_num" :9898989898 "email" :abc@xyz.com arr[1] "name": xyz "mobile_num" :9698989898 "email" :abcd@xyz.com 

我见过哈希和数组文档。 在我发现的所有内容中,我必须做类似的事情

 c = {} c["name"] = "abc" c["mobile_num"] = 9898989898 c["email"] = "abc@xyz.com" arr << c 

循环中的上述语句中的迭代允许我填充arr 。 我实际上有一行像["abc",9898989898,"abc@xyz.com"] 。 有没有更好的方法来做到这一点?

假设你的意思是“rowofrows”是一个数组数组,这是我认为你想要完成的解决方案:

 array_of_arrays = [["abc",9898989898,"abc@xyz.com"], ["def",9898989898,"def@xyz.com"]] array_of_hashes = [] array_of_arrays.each { |record| array_of_hashes << {'name' => record[0], 'number' => record[1].to_i, 'email' => record[2]} } p array_of_hashes 

将输出您的哈希数组:

 [{"name"=>"abc", "number"=>9898989898, "email"=>"abc@xyz.com"}, {"name"=>"def", "number"=>9898989898, "email"=>"def@xyz.com"}] 

您可以先将数组定义为

 array = [] 

然后你可以按照下面的方法逐个定义哈希值并将它们推入数组中。

 hash1 = {:name => "mark" ,:age => 25} 

然后呢

 array.push(hash1) 

这会将哈希插入数组中。 同样,您可以推送更多哈希来创建哈希数组。

您也可以在push方法中直接执行此操作:

  1. 首先定义你的数组:

    @shopping_list_items = []

  2. 并在列表中添加一个新项目:

    @shopping_list_items.push(description: "Apples", amount: 3)

  3. 哪个会给你这样的东西:

    => [{:description=>"Apples", :amount=>3}]