我目前正在尝试转换这个 ruby 数组:
[5, 7, 8, 1]
进入这个:
[[5], [7], [8], [1]]
我目前是这样做的:
[5, 7, 8, 1].select { |element| element }.collect { |element| element.to_a }
但我收到以下警告:
warning: default `to_a' will be obsolete
最佳答案
最短最快的解决方案是使用 Array#zip
:
values = [5, 7, 8, 1]
values.zip # => [[5], [7], [8], [1]]
另一种可爱的方式是使用 transpose
:
[values].transpose # => [[5], [7], [8], [1]]
最直观的方法可能是@Thom 的建议:
values.map { |e| [e] }
关于ruby - 如何 "unflatten"一个 Ruby 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6962883/