我只想更新哈希中的日期元素。 即
hash = { 'name': 'Albert', 'date_1': "31-01-2017", 'date_2': "31-01-2017" }
## I only want to update `date_1` and `date_2`.
我试过了
hash.select {|k,v| ['date_1','date_2'].include? k }.transform_values!(&:to_date)
但是因为我之前做了一个select,所以只会返回我
{ 'date_1':2017 年 1 月 31 日,星期二,'date_2':2017 年 1 月 31 日,星期二 }
关于保留其他属性以及转换所选键的任何建议?
即{ 'name': 'Albert', 'date_1':2017 年 1 月 31 日,星期二,'date_2':2017 年 1 月 31 日,星期二 }
最佳答案
只需更新 date_1 和 date_2 的值:
hash['date_1'] = hash['date_1'].to_date if hash['date_1']
hash['date_2'] = hash['date_2'].to_date if hash['date_2']
或者如果你有更多的日期键,你可以使用 each
来完成:
date_keys = [:date_1, :date_2]
hash.each do |k,v|
hash[k] = v.to_date if date_keys.include?(k)
end
关于ruby - 更新哈希中的特定键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41918833/