gpt4 book ai didi

ruby - 在 ruby​​ 中合并或求和 "keys"上的 2 个数组

转载 作者:数据小太阳 更新时间:2023-10-29 06:55:53 26 4
gpt4 key购买 nike

这是数组版本:Sum 2 hashes attributes with the same key

我有 2 个数组,例如:

a = [[1,10],[2,20],[3,30]]
b = [[1,50],[3,70]]

我怎样才能对第一个值(如果存在)求和得到:

c = [[1,60],[2,20],[3,100]]

最佳答案

你可以这样做:

(a + b).group_by(&:first).map { |k, v| [k, v.map(&:last).inject(:+)] }

首先,您使用 + 将数组放在一起,因为您不关心 ab,您只关心它们的元素。然后 group_by按第一个元素对组合数组进行分区,以便可以轻松使用内部数组。然后你只需要用 v.map(&:last) 取出内部数组的第二个(或最后一个)元素。并用 inject(:+) 求和.

例如:

>> a = [[1,10],[2,20],[3,30]]
>> b = [[1,50],[3,70]]
>> (a + b).group_by(&:first).map { |k,v| [k, v.map(&:last).inject(:+)] }
=> [[1, 60], [2, 20], [3, 100]]

关于ruby - 在 ruby​​ 中合并或求和 "keys"上的 2 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9333728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com