我需要循环遍历别名哈希,并通过在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
答案 0 :(得分:2)
试试这样:
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