ruby - 如何确定一条记录是迭代中的第一条/最后一条?

标签 ruby

这件事让我思考了好几次。在这个例子中,我有一个数组,这个数组有 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/

相关文章:

ruby - 是否有更惯用的方式来表达循环中剩余的迭代次数?

ruby-on-rails - 从表单服务器端 Ruby on Rails 创建文本文件

ruby-on-rails - 在rails中需要一个gem

ruby-on-rails - I18n 和 i18n-active_record - 没有 I18n::Backend::ActiveRecord 类?

ruby-on-rails - Rails 路由 - 如何将范围参数添加到 url_for 助手?

ruby - 必须与 gtk_builder_new_from_resource 一起使用的资源路径是什么?

ruby - 我应该使用 RSpec 测试私有(private)方法吗?

ruby-on-rails - 由于 Selenium 参数错误,Watir 浏览器初始化失败

ruby - 访问 Ruby 对象中的字符串

ruby-on-rails - Ruby on Rails - 无效日期