寻找一种方法将嵌套的数组列表减少为一个唯一的项目数组,并删除任何空数组。
希望减少这个数组:
[[2700, 177, 2092, 176, 188], [123, 1234], []]
向下到这个新阵列:
[2700, 177, 2092, 176, 188, 123, 1234]
尝试了array.uniq.compact
,但没有效果。
感谢您的任何建议。
答案 0 :(得分:9)
您需要先平整阵列。
array.flatten.uniq
一些注意事项:
Array#flatten
将所有子数组合并到顶级数组中。由于空数组不包含任何元素,因此将自动删除它们。Array#compact
返回一个删除了nil
元素的新数组。Array#uniq
返回一个只包含唯一元素的新数组。答案 1 :(得分:2)
返回一个新的数组,该数组是self的一维展平 (递归的)。
=> [[2700, 177, 2092, 176, 188], [123, 1234], []].flatten
#> [2700, 177, 2092, 176, 188, 123, 1234]