我的目标是创建一个哈希,它将数组中的值存储为键,并从另一个数组中获取值作为值。我想将一个数组中的“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
答案 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"
等