ruby-on-rails - 将 Hash 更改为 ruby​​ 中的数组数组

标签 ruby-on-rails ruby hash

假设我有一个散列

 {: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/

相关文章:

ruby-on-rails - ActiveRecord 将字段设置为 SQL 表达式

ruby-on-rails - 我应该使用什么 Rails gem 来使用 Resque 进行重复性工作?

python - 从 python 中的随机输入字母中查找单词。使用什么算法/代码已经存在?

ruby-on-rails - Ruby on Rails,如何禁用/关闭 ETag

mysql - 选择过期和未过期的值 MySQL、Rails 5

ruby-on-rails - 应用程序的名称是否可以作为变量使用?

ruby-on-rails - 使用 Rails 进行功能测试时在多个表中创建记录的问题

arrays - 解析数据并适应哈希给出了预期的结果

c# - GetHashCode 使用哪个哈希函数?

algorithm - 如何从超过 1TB 的数据中打印频率为 k 的词?