加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby:合并数组或哈希

发布时间:2020-12-17 02:28:57 所属栏目:百科 来源:网络整理
导读:我无法理解如何解决这个问题,基本上我有两个看起来像这样的数组: 第一个数组: days_to_report#= [{:date=Fri,01 Apr 2011},#= {:date=Sat,02 Apr 2011},#= {:date=Sun,03 Apr 2011},#= {:date=Mon,04 Apr 2011}] 第二阵列: tracks_by_day#= [{:date=Mon,0
我无法理解如何解决这个问题,基本上我有两个看起来像这样的数组:

第一个数组:

days_to_report
#=> [{:date=>Fri,01 Apr 2011},#=>  {:date=>Sat,02 Apr 2011},#=>  {:date=>Sun,03 Apr 2011},#=>  {:date=>Mon,04 Apr 2011}]

第二阵列:

tracks_by_day
#=> [{:date=>Mon,04 Apr 2011,:count=>905,:percentage=>13.205895228367137},02 Apr 2011,:count=>6745,:percentage=>98.4240478622501},#=>  {:date=>Fri,01 Apr 2011,:count=>6853,:percentage=>100.0}]

在这种情况下,日期是Date对象.

所以我想要合并它们,以便对于第一个数组中的每个项目(days_to_report),具有第二个数组所具有的数据,就像理想的输出一样:(注意日期的数据,2011年3月3日)

[{:date=>Mon,{:date=>Sun,03 Apr 2011,:count=>0,:percentage=>0},{:date=>Sat,{:date=>Fri,:percentage=>100.0}]

请注意,数组的第二项对于值为零,因为:date不在tracks_by_day数组的哈希值中…有关如何实现此目的的任何想法?它似乎是zip或其他东西提供的功能,但我需要匹配键以查看它们是否存在,如果它们不存在则填充它们的值.

我希望我正确地描述这一点,再次感谢你们!举手击掌!

解决方法

days = days_to_report.map{|d| d[:date] } - tracks_by_day.map{|d| d[:date]}
days.each{ |d| tracks_by_day << {:date => d,:count => 0,:percentage => 0} }

要么

days.inject(tracks_by_day){|a,d| a << {:date => d,:percentage => 0}}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读