I have an array of hashes like this:

[{:created=>Fri, 22 Jan 2014 13:02:13 UTC +00:00, :amount=>20},
{:created=>Fri, 27 Jan 2014 13:14:57 UTC +00:00, :amount=>15},
{:created=>Fri, 27 Jan 2014 14:42:40 UTC +00:00, :amount=>10},
{:created=>Fri, 28 Jan 2014 15:26:58 UTC +00:00, :amount=>10},
{:created=>Fri, 28 Jan 2014 15:30:18 UTC +00:00, :amount=>20},
{:created=>Fri, 31 Jan 2014 15:32:46 UTC +00:00, :amount=>50},
{:created=>Fri, 31 Jan 2014 15:33:29 UTC +00:00, :amount=>40}]

I'd like to group those hashes by date and sum the amounts. So, in my example, the output would be:

[{:created=>"2014-01-22", :amount=>20},
{:created=>"2014-01-27", :amount=>25},
{:created=>"2014-01-28", :amount=>30},
{:created=>"2014-01-31", :amount=>90}]
require 'date'

a = [{:created=> 'Fri, 22 Jan 2014 13:02:13 UTC +00:00', :amount=>20},
{:created=>'Fri, 27 Jan 2014 13:14:57 UTC +00:00', :amount=>15},
{:created=>'Fri, 27 Jan 2014 14:42:40 UTC +00:00', :amount=>10},
{:created=>'Fri, 28 Jan 2014 15:26:58 UTC +00:00', :amount=>10},
{:created=>'Fri, 28 Jan 2014 15:30:18 UTC +00:00', :amount=>20},
{:created=>'Fri, 31 Jan 2014 15:32:46 UTC +00:00', :amount=>50},
{:created=>'Fri, 31 Jan 2014 15:33:29 UTC +00:00', :amount=>40}]

a.group_by { |h| Date.parse h[:created] }.map { |k,v|{:created => k.to_s,:amount => v.map {|h1| h1[:amount]}.inject(:+)}}

最新文章

  1. WPF自定义控件第一 - 进度条控件
  2. FlexiGrid 使用 全选、自动绑定
  3. SOAPUI测试步骤----DataGen TestStep
  4. Cocos2d-JS工程中的文件结构
  5. 利用MyEclipes的反转工程来配置Hibernate各种配置
  6. 【转载】#323 - A Generic Class is a Template for a Class
  7. openerp经典收藏 深入理解报表运行机制(转载)
  8. C#后台程序与HTML页面中JS方法互调
  9. win7使用USB转串口连接mini2440方法
  10. [Python笔记][第一章Python基础]
  11. WPF 文本滚动效果 渐变效果
  12. Atom 编辑器安装 linter-eslint 插件,并配置使其支持 vue 文件中的 js 格式校验
  13. Ubuntu14.04安装androidStudio错误解除
  14. hbuilder中的wap2app (将M站快速转换成App的开发框架)使用过程有关原生标题的关闭
  15. 【Java基础】for循环实现在控制台打印水仙花数
  16. 常用的Eclipse 快捷键
  17. Spring + SpringMVC配置
  18. Unity发布Windows程序遇到的问题
  19. AngularJS 、Backbone.js 和 Ember.js 的比较
  20. python学习,day4:装饰器的使用示例

热门文章

  1. 【程序员小助手】Emacs,最强编辑器,没有之一
  2. 【Java基础】“数三退一”问题的代码实现
  3. 使用jQuery和css3实现了仿淘宝ued博客左边的菜单切换动画
  4. FastReport的再次使用
  5. Android应用公布的准备——生成渠道包
  6. 遗传算法解决旅行商问题(TSP)
  7. opencv-形态处理
  8. SQL Server 2008 R2 性能计数器详细列表(二)
  9. C++学习笔记36 (模板的细节明确template specialization)和显式实例(template instantiation)
  10. 【Java编码准则】の #02不要在client存储未加密的敏感信息