ruby-on-rails - 如何将多级数组中的唯一值映射到 value=>array 的散列?

标签 ruby-on-rails ruby arrays hash hashmap

我有一个看起来像这样的数组:

[[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/

相关文章:

ruby-on-rails - rails : Bundler could not find compatible versions for gem "actionpack" on installing ActiveAdmin

ruby - Ruby 中的 String.equalsIgnoreCase(...) 等价物

ruby - 如何使用 Ahoy gem 跟踪其他帖子数据?

ios - NSMutableArray 和复制

java - 线程中的异常 "main"java.lang.ArrayIndexOutOfBoundsException : 0 at lab3. Lab3.readTestScore(Lab3.java :93) at lab3. Lab3.main(Lab3.java:25)

ruby-on-rails - Rails 链接到公共(public)文件夹中的文件

javascript - 使用 javascript 定位 f.select Rails 表单助手

ruby-on-rails - RoR 从 ActiveRecord::Relation 中获取属性

JQuery inArray 返回 true

ruby-on-rails - mini_racer gem 0.8.0 与 Ruby 3.1.x 的 bundle 安装失败