Ruby新的独特嵌套数组项数组

tma*_*314 1 ruby ruby-on-rails

寻找一种方法来将嵌套的数组列表减少为一个唯一的项目数组,并删除任何空数组.

希望减少这个数组:

[[2700, 177, 2092, 176, 188], [123, 1234], []]
Run Code Online (Sandbox Code Playgroud)

下到这个新阵列:

[2700, 177, 2092, 176, 188, 123, 1234]
Run Code Online (Sandbox Code Playgroud)

已经尝试过array.uniq.compact,但没有奏效.

谢谢你的任何建议.

fbo*_*tti 9

您需要先将阵列展平.

array.flatten.uniq
Run Code Online (Sandbox Code Playgroud)

几点说明:

  • Array#flatten将所有子数组合并到顶级数组中.由于空数组不包含任何元素,因此将自动删除它们.
  • Array#compact返回一个nil删除了元素的新数组.
  • Array#uniq 返回仅包含唯一元素的新数组.