初始化循环中使用的临时变量的最佳方法

wir*_*din 4 ruby

初始化循环中用于跟踪先前值的临时变量的最佳方法是什么?

这是我如何做的例子,但我觉得有一种更清洁的方式.如果之前的节目是在另一天,我只想打印节目日期

temp_show_date = ""
shows.each do |show|
  if temp_show_date != show.date
    puts show.date
  end
  puts show.name
  temp_show_date = show.date
 end
Run Code Online (Sandbox Code Playgroud)

Zac*_*emp 5

我可能会重新使用数据,group_by因此它或多或少匹配所需的输出.然后,您可以输出一次日期,因为它成为哈希中的键,然后是该日期的节目数组:

shows.group_by(&:date).each do |date, date_shows|
  puts date
  puts date_shows
end
Run Code Online (Sandbox Code Playgroud)

(我正在使用IRB的默认行为来提供数组作为参数puts,其中每个元素都打印在一个新行上.如果你需要对它们做其他事情,你可以循环遍历该数组).