我有一个看起来像这样的数组:
[[100, "one"],
[101, "one"],
[102, "one"],
[103, "two"],
[104, "three"],
[105, "three"]]
我想做的是创建一个看起来像这样的哈希数组
[{"one" => [100,101,102]},
{"two" => [103]},
{"three" => [104,105]}]
数字部分将始终是唯一的,字符串部分将重复。我考虑这样做的每一种方式都会得到一些长函数,我想知道解决这个问题的“rails 方式”,我确信我缺少一些晦涩的函数。
最佳答案
不是 Rails 助手,而是一个常见的 Ruby 惯用语可以帮助您实现目标。一点点
arr.inject({}) { |h,(v,k)| h[k] ||= []; h[k] << v; h }
会成功的。
关于ruby-on-rails - 如何将多级数组中的唯一值映射到 value=>array 的散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3677217/