我试图创建一个使用年月作为键的哈希。请考虑以下代码:
SharedPreferences
上面的代码创建了一个格式化的日期数组,如下所示:
(start_date..end_date).map { |date| date.strftime('%Y-%m') }.uniq
但是,你会怎么做类似的事情,将这个格式化日期作为键,空数组作为值?看起来像这样:
["2017-05", "2017-06", "2017-07", "2017-08", "2017-09", "2017-10", "2017-11", "2017-12", "2018-01", "2018-02", "2018-03", "2018-04", "2018-05"]
提前致谢!
答案 0 :(得分:1)
您实际上可以采取您的方法并在此基础上进行构建:
(start_date..end_date)
.map { |date| date.strftime('%Y-%m') }
.uniq
.map { |date| [date, []] }
.to_h
=> {"2017-05"=>[], "2017-06"=>[], "2017-07"=>[], "2017-08"=>[], "2017-09"=>[], "2017-10"=>[], "2017-11"=>[], "2017-12"=>[], "2018-01"=>[], "2018-02"=>[], "2018-03"=>[], "2018-04"=>[], "2018-05"=>[]}
但这可以简化为:
(start_date..end_date)
.map { |date| [date.strftime('%Y-%m') , []] }
.to_h
范围创建的日期已经是唯一的。