如何在Ruby中将数组转换为哈希表是最佳方法?

138

在 Ruby 中,如果给定一个以下形式之一的数组...

[apple, 1, banana, 2]
[[apple, 1], [banana, 2]]

...最佳的方法是将其转换为哪种形式的哈希表?

{apple => 1, banana => 2}
12个回答

0

为了考虑性能和内存分配问题,请查看我的回答以及Rails将哈希数组映射到单个哈希,我在这里对多种解决方案进行了基准测试。

reduce / inject 可以是最快的也可以是最慢的解决方案,具体取决于使用哪种方法。


-1
如果数字值是序列索引,那么我们可以有更简单的方法... 这是我的代码提交,我的 Ruby 有点生疏。
   input = ["cat", 1, "dog", 2, "wombat", 3]
   hash = Hash.new
   input.each_with_index {|item, index|
     if (index%2 == 0) hash[item] = input[index+1]
   }
   hash   #=> {"cat"=>1, "wombat"=>3, "dog"=>2}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接