在ruby中的“键”上合并或求和2个数组
发布时间:2020-12-17 04:28:31 所属栏目:百科 来源:网络整理
导读:这是阵列版本: Sum 2 hashes attributes with the same key 我有2个数组,例如: a = [[1,10],[2,20],[3,30]]b = [[1,50],70]] 如何在第一个值(如果存在)上对每个值求和: c = [[1,60],100]] 解决方法 你可以这样做: (a + b).group_by(:first).map { |k,v|
这是阵列版本:
Sum 2 hashes attributes with the same key
我有2个数组,例如: a = [[1,10],[2,20],[3,30]] b = [[1,50],70]] 如何在第一个值(如果存在)上对每个值求和: c = [[1,60],100]] 解决方法
你可以这样做:
(a + b).group_by(&:first).map { |k,v| [k,v.map(&:last).inject(:+)] } 首先你把阵列放在一起,因为你不关心a和b,你只关心它们的元素.然后, 例如: >> a = [[1,30]] >> b = [[1,70]] >> (a + b).group_by(&:first).map { |k,v.map(&:last).inject(:+)] } => [[1,100]] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |