Ruby:在第一个元素相同的数组中添加第二个元素

标签 ruby arrays

[[1, 20],[2,30],[1,5],[4,5]]

在 ruby​​ 中,如果第一个元素与输出相同,如何遍历这个数组并添加第二个元素,例如:

[[1, 25],[2,30],[4,5]]

最佳答案

如果顺序不重要,将对插入散列,如果键已经存在则添加,然后将散列展平回数组是一种巧妙的方法。在 irb 中:

>> a = [[1, 20],[2,30],[1,5],[4,5]]

=> [[1, 20], [2, 30], [1, 5], [4, 5]]

>> a.inject(Hash.new(0)) { |h, p| h[p[0]] += p[1]; h }.to_a

=> [[1, 25], [2, 30], [4, 5]]

关于Ruby:在第一个元素相同的数组中添加第二个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2827292/

相关文章:

mysql - Rails 中的搜索逻辑,希望在没有 gem 的情况下使其更加精确

c++ - 在 C++ 中使用括号表示法将二维数组传递给方法的问题

javascript - Javascript/Typescript 中对象数组的数据集

python - 使用numpy根据固定映射将巨大的2字节字符串数组转换为相应的1字节字符串

ruby - 在 ruby​​ 中按批处理对数组进行排序

ruby - 包含模块时使用间接有优势吗(来自 7 周内的 7 种语言,Ruby 第 3 天)

ruby - RSpec 事件记录范围

java - 使用字符串指向某个列表(或数组)

Java 百分比计算未处理,我不明白为什么

ruby-on-rails - rails : Share variables between controller and view