我定义了一个数组:
years = (2014..Time.now.year + 1).to_a
#=> [2014, 2015, 2016, 2017, 2018]
我想显示这样的输出:
['2014-2015', '2015-2016', '2016-2017', '2017-2018']
你有什么好的建议吗?
Enumerable#each_cons
为每个连续元素数组迭代给定块。
(2014..Time.now.year + 1).each_cons(2).to_a # => [[2014, 2015], [2015, 2016], [2016, 2017], [2017, 2018]]
我相信你可以处理剩下的事情。
无需重新发明轮子,只需使用 map
:
(2014..Time.now.year).map { |year| "#{year}-#{year + 1}" }
#=> ["2014-2015", "2015-2016", "2016-2017", "2017-2018"]