2015-06-21 113 views
-1

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

什么是 “我” 的价值? – sawa

+0

var“i”是一个计数器 – mike927

回答

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" 

+0

很好,但我只想显示键值而不是整个语句 – mike927

+0

@ mike927请参阅编辑 – user2635088

+0

@ mike927做了那些工作? – user2635088