假设我有一个散列
{:facebook=>0.0, :twitter=>10.0, :linkedin=>6.0, :youtube=>8.0}
现在我想把它变成一个像这样的数组
[[Facebook,0.0],[Twitter,10.0],[Linkedin,6.0],[Youtube,8.0]]
我可以使用逻辑来提取并将其更改为数组,但我只是想知道在 ruby 中是否有任何定义的方法可用于实现上述内容。
最佳答案
您可以使用 to_a .
{:facebook=>0.0, :twitter=>10.0, :linkedin=>6.0, :youtube=>8.0}.to_a
返回
[[:facebook, 0.0], [:twitter, 10.0], [:linkedin, 6.0], [:youtube, 8.0]]
虽然这不会自动将您的符号转换为常量,但您必须使用 map (和 const_get )。
{:facebook=>0.0, :twitter=>10.0, :linkedin=>6.0, :youtube=>8.0}.map{|k,v| [Kernel.const_get(k.to_s.capitalize), v]}
输出
[[Facebook,0.0],[Twitter,10.0],[Linkedin,6.0],[Youtube,8.0]]
关于ruby-on-rails - 将 Hash 更改为 ruby 中的数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7766571/