将哈希值分配给数组

时间:2015-06-21 08:56:59

标签: arrays ruby file hash

我的目标是创建一个哈希,它将数组中的值存储为键,并从另一个数组中获取值作为值。我想将一个数组中的“i”值与另一个数组中的“i”值相关联。

我的第一个数组存储文件名,第二个数据存储大小。我想从名称数组中指出一些字段并显示其大小

arr = []
arr_s = []
size = Hash.new
Dir.glob("#{dirname}/**/*") do |file|
  if File.file?(file)
    arr_s[i] = File.size(file)
    arr[i] = File.basename("#{file}")
    i += 1
    size["#{arr[i]}"] = "#{arr_s[i]}"
    puts size["#{arr[i]}"]
  end
end

1 个答案:

答案 0 :(得分:1)

你可以这样做:

size = Hash[arr.zip(arr_s)]

为了让您更好,在irb,我输入了

a = (1..5).to_a
=> [1, 2, 3, 4, 5] 

b = ('a'..'e').to_a
=> ["a", "b", "c", "d", "e"] 

然后,输入

size=Hash[a.zip(b)]

返回

{1=>"a", 2=>"b", 3=>"c", 4=>"d", 5=>"e"} 

所以你可以这样做:

puts size[1]

会返回

"a"