2015-06-21 107 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