循环内的 Ruby 变量绑定



我需要遍历别名哈希,并通过从 Ruby 类中的别名哈希中为其赋值来转换标头数组。

我似乎无法转换标头数组,然后在循环后使其可用。

如何转换标头数组,使其在循环后可用?

 header = ["City", "State"]
 aliases = {"City"=>"Las Vegas", "State"=>"Nevada"}
 aliases.each do |k,v|
   header.each do |s|   
     if s == k then
       s = v            
     end
   end
 end
 puts header

像这样尝试:

header = ["City", "State"]
 aliases = {"City"=>"Las Vegas", "State"=>"Nevada"}
 aliases.each do |k,v|
   header.each do |s|   #doesn't see header variable
     if s == k 
      header[header.index(s)] = v            #doesn't see v variable
     end
   end
 end
 puts header

不知道我是否做对了,认为这就是你要找的。祝你好运!

编辑:我仍然会像这样简化它:

header = ["City", "State"]
aliases = {"City"=>"Las Vegas", "State"=>"Nevada"}
header.each do |s|
  aliases.select{|k,v| k==s}.each do |k,v|
    header[header.index(s)] = v
  end
end
puts header

最新更新