在 Ruby 中,如果给定一个以下形式之一的数组...
[apple, 1, banana, 2]
[[apple, 1], [banana, 2]]
...最佳的方法是将其转换为哪种形式的哈希表?
{apple => 1, banana => 2}
为了考虑性能和内存分配问题,请查看我的回答以及Rails将哈希数组映射到单个哈希,我在这里对多种解决方案进行了基准测试。
reduce
/ inject
可以是最快的也可以是最慢的解决方案,具体取决于使用哪种方法。
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}