ruby-on-rails - 获取散列键的嵌套数组的第一个元素

标签 ruby-on-rails arrays ruby hash

假设我有一个如下所示的数组:

[
  [["str1"],["val1"],["val2"]],
  [["str2"], ["val1"], ["val2"], ["val3"]]
] 

有没有办法让我得到一个看起来像这样的哈希:

{
  "str1" => [["val1"],["val2"]],
  "str2" => [["val1"],["val2"],["val3"]]
}

最佳答案

a.map { |a| [a.first.first, a.drop(1)] }.to_h
# or
a.each_with_object({}) {|a, h| h[a.first.first] = a.drop(1) }
#=> {
#     "str1"=>[["val1"], ["val2"]],
#     "str2"=>[["val1"], ["val2"], ["val3"]]
#   }

如果您不想让每个元素都在一个单独的数组中:

Hash[a.map(&:flatten).map { |a| [a.first, a.drop(1)] }]
#=> {"str1"=>["val1", "val2"], "str2"=>["val1", "val2", "val3"]}

关于ruby-on-rails - 获取散列键的嵌套数组的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40431616/

相关文章:

ruby-on-rails - 在 ActiveAdmin 的标题菜单中添加自定义项

ruby-on-rails - 使用@import 或 require 将 css 和 js 导入 Rails 4.2.4 应用程序

ruby - 解释 1<<16 | 10?

ruby - `include?' 中没有将 false 隐式转换为 String>

ruby-on-rails - rails : Is there a way to associate a name with each locale?

java - 当java中的字符串具有双字节字符时,如何对字符串进行子串

javascript - 我尝试插入嵌套数组,但如果没有正确保存呢?

java - 如何在数组中创建混合数组?

ruby-on-rails - RSpec - 无法获取 Controller 中的所有关联属性

css - 如何防止由于分页而在 pdf 报告末尾添加空白页