在rails中订购/随机化/转换数组

Mau*_*oon 2 ruby arrays ruby-on-rails multidimensional-array

我有这个:

a = [[123,1],[124,1],[125,1],[126,2],[127,3],[128,3]]
Run Code Online (Sandbox Code Playgroud)

我想把a转成b:

  • 按价值排序
  • 在值数组中随机

// 更新:

b = [[124,123,125],[126],[128,127]]
Run Code Online (Sandbox Code Playgroud)

如何在红宝石中做到这一点?我用铁轨.

Jör*_*tag 5

a.group_by(&:last).
  sort_by(&:first).
  map(&:last).
  map {|el| el.map(&:first).shuffle }
Run Code Online (Sandbox Code Playgroud)