ruby-on-rails - 如何在 rails 中组合 2 个数组,使得没有重复项

标签 ruby-on-rails arrays ruby

假设我有 2 个数组,

o = ["16", "16", "119"]
d = ["97", "119", "97"]

需要的输出是这样的:

{16=>[97, 119], 119=>[97]}

我尝试使用 .zip 但它没有用。我该怎么做?

最佳答案

你可以链接group_bywith_index根据 o 中的相应元素对 d 中的元素进行分组:

d.group_by.with_index { |_, i| o[i] }
#=> {"16"=>["97", "119"], "119"=>["97"]}

要获取整数,您必须添加一些to_i 调用:

d.map(&:to_i).group_by.with_index { |_, i| o[i].to_i }
#=> {16=>[97, 119], 119=>[97]}

关于ruby-on-rails - 如何在 rails 中组合 2 个数组,使得没有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44754236/

相关文章:

ruby - 将电子邮件组织成线程的算法?

ruby - 如何使用 webmock 正则表达式匹配器?

ruby-on-rails - eager_load=true 有什么影响?

javascript - Rails 4 - Bootstrap Slider - 动态填充数据滴答的工具提示?

css - BootStrap 在 IE8 中中断

ruby-on-rails - RSpec 请求规范 - 缺少必需的 key : [:id]

javascript - 对象/数组的深度比较

c - 给定一个单位数,正整数数组,转换为整数,乘以 2,返回一个新产品数组,数组中的每个数字

c++ - 如何在C++中编译具有大量数据的 vector ?

ruby-on-rails - 参数错误 : assertion message must be String or Proc using assert_select