【问题标题】:Ruby/Rails: Convert array of arrays to hash of arraysRuby/Rails:将数组数组转换为数组哈希
【发布时间】:2013-09-16 22:56:21
【问题描述】:

我正在寻找一种惯用的方式来查询数据库并将所有值按列分组。

例如指令:

@players = Player.pluck(:white, :black, :red, :blue, :yellow)

像这样返回一个多维数组:

[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]

但我需要这样的数组散列:

{
  white:  [1, 6, 11],
  black:  [2, 7, 12], 
  red:    [3, 8, 13],
  blue:   [4, 9, 14],
  yellow: [5, 10, 15]
}

所有数组的第一个元素用“white”键存储,所有数组的第二个元素用“black”键存储,依此类推。

【问题讨论】:

    标签: ruby-on-rails arrays ruby activerecord ruby-2.0


    【解决方案1】:
    a = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
    [:white, :black, :red, :blue, :yellow].zip(a.transpose)
    # => [[:white, [1, 6, 11]], [:black, [2, 7, 12]], [:red, [3, 8, 13]], [:blue, [4, 9, 14]], [:yellow, [5, 10, 15]]]
    Hash[[:white, :black, :red, :blue, :yellow].zip(a.transpose)]
    # => {:white=>[1, 6, 11], :black=>[2, 7, 12], :red=>[3, 8, 13], :blue=>[4, 9, 14], :yellow=>[5, 10, 15]}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-16
      • 2010-12-11
      • 2021-11-25
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 2012-10-29
      相关资源
      最近更新 更多