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

ruby-on-rails – 如果多个具有相同的最大值,则作为数组获得最大

发布时间:2020-12-17 01:49:29 所属栏目:百科 来源:网络整理
导读:Ruby有Enumerable#max和Enumerable#max_by,我用以下方式使用max_by. array = [ {:a = 1,:b = 2,:c = 3},{:a = 3,:c = 4},:b = 1,:c = 4} ]max_item = array.max_by { |item| item[:b] }= {:b=2,:c=3,:a=1} 因此,它将返回单个最大值(我认为是第一个),即使有2
Ruby有Enumerable#max和Enumerable#max_by,我用以下方式使用max_by.

array = [
           {:a => 1,:b => 2,:c => 3},{:a => 3,:c => 4},:b => 1,:c => 4}
        ]
max_item = array.max_by { |item| item[:b] }
=> {:b=>2,:c=>3,:a=>1}

因此,它将返回单个最大值(我认为是第一个),即使有2个项具有相同的最大值.我想实现一个函数,在这种情况下给出两个项目.还有其他一些max_by变体还是我需要从头开始写这个?

解决方法

array = [
           {:a => 1,:c => 4}
        ]

array.group_by{|el| el[:b]}.max.last 
#=>[{:a=>1,:b=>2,:c=>3},{:a=>3,:c=>4}]

group_by工作有点太难了,但它确实提供了.

(编辑:李大同)

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

    推荐文章
      热点阅读