繁体   English   中英

如何在Ruby中合并子数组中的子数组?

[英]How to merge sub-arrays within an array in Ruby?

我有一个数组,出于参数考虑,它看起来像这样:

a = [[1,100], [2,200], [3,300], [2,300]]

在这四个子数组中,我想合并第一个元素为重复项的任何子数组。 因此,在上面的示例中,我想合并第二和第四子数组。 但是,需要注意的是,在匹配子数组中第二个元素不同的情况下,我想保持较高的值。

因此,我希望看到以下结果:

a = [[1,100], [3,300], [2,300]]

这个小难题超出了我的Ruby技能,因此请向社区寻求帮助。 任何有关如何解决此问题的指导都将受到赞赏。

谢谢

# Get a hash that maps the first entry of each subarray to the subarray
# requires 1.8.7+ or active_support (or facets, I think)
hash = a.group_by { |first, second| first }
# Take each entry in the hash and select the biggest entry for each unique key
hash.map {|k,v| v.max }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM