【问题标题】:How to merge sub-arrays within an array in Ruby?如何在 Ruby 中合并数组中的子数组?
【发布时间】:2025-12-06 10:35:01
【问题描述】:

我有一个数组,为了参数,它看起来像这样:

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

在这四个子数组中,我想合并第一个元素重复的任何地方。所以在上面的例子中,我想合并第二个和第四个子数组。但是,需要注意的是,在匹配子数组中的第二个元素不同的地方,我想保持较高的值。

所以,我想看看这个结果:

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

这个小难题有点超出我的 Ruby 技能,所以我向社区寻求帮助。非常感谢任何有关如何解决此问题的指导。

谢谢

【问题讨论】:

    标签: ruby arrays merge multidimensional-array


    【解决方案1】:
    # 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 }
    

    【讨论】: