这件事让我思考了好几次。在这个例子中,我有一个数组,这个数组有 10 个值,应该用逗号分隔,但在最后一个值之后不应该有逗号,所以我使用了一个计数器:
data = ["john", "james", "henry", "david", "daniel", "jennifer", "ruth", "penny", "robin", "julia"]
counter = 0
count = data.size
sentence = String.new
data.each do |name|
if counter == (count-1)
sentence += name
else
sentence += "#{name}, "
end
counter += 1
end
但这太脏了,难道没有任何方法可以确定当前对象(在本例中为“name”)是迭代中的第一个还是最后一个?
最佳答案
在这种特定情况下,data.join(', ')
可以,更一般地 data.each {|d| #做东西
除非 d.equal?数据.last}
关于ruby - 如何确定一条记录是迭代中的第一条/最后一条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7859072/