hol*_*den 0 ruby arrays hash ruby-on-rails
我怎样才能非常简单地使用像"times"这样简单的东西在ruby中构造一个哈希
我有一个@date(即= Date.today)然后好几天...说5
5.times { |i| @date_range[:day] = (@date+i).strftime("%Y-%m-%d") }
Run Code Online (Sandbox Code Playgroud)
我知道必须有一些超级简单的东西.
谢谢...
Date对象也是Comparable,所以你可以构造一个Range:
@range = @date..(@date + 10)
Run Code Online (Sandbox Code Playgroud)
您可以轻松地迭代它并输出结果.如果要以数字方式访问特定日期,可以执行以下操作:
@date_range = (@date..(@date + 10)).to_a
@date_range[1]
Run Code Online (Sandbox Code Playgroud)
或者,如果您确实需要事先格式化日期,请参见示例:
@date_range = (@date..(@date + 10)).map { |date| date.strftime("%Y-%m-%d") }
@date_range[1]
Run Code Online (Sandbox Code Playgroud)
最后一行将等同于你的@date_range[1](等于明天/ @date + 1),即使它实际上是一个Array而不是一个Hash.Hash使用顺序数字键的A 并没有多大意义:你可以免费获得这些,Array 并且作为奖励,保留了值的顺序.在我看来,使用Ranges开始略微澄清意图,但这并不是一个惊人的差异.
| 归档时间: |
|
| 查看次数: |
2190 次 |
| 最近记录: |