我有一个哈希:
=> {"foo"=>1, "bar"=>2, "abc"=>3}
和代码:
foo.each do |elem|
# smth
end
如何识别循环中的元素是最后一个? 像
这样的东西if elem == foo.last
puts 'this is a last element!'
end
答案 0 :(得分:15)
例如:
foo.each_with_index do |elem, index|
if index == foo.length - 1
puts 'this is a last element!'
else
# smth
end
end
您可能遇到的问题是地图中的项目没有按任何特定顺序排列。在我的Ruby版本中,我按以下顺序看到它们:
["abc", 3]
["foo", 1]
["bar", 2]
也许您想要遍历排序的键。像这样举例如:
foo.keys.sort.each_with_index do |key, index|
if index == foo.length - 1
puts 'this is a last element!'
else
p foo[key]
end
end