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工作有点太难了,但它确实提供了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |