数组到哈希红宝石

Nic*_*aru 0 ruby arrays hash

我在ruby中有这样的数组(文档语言[偶数索引]和单词数[奇数索引])

words = ["en",200,"ru","120","es",140,"ru",240]
Run Code Online (Sandbox Code Playgroud)

最终结果应如下所示:

{"en"=>200,"ru=>360","es"=>140}
Run Code Online (Sandbox Code Playgroud)

Ser*_*sev 6

啊,你需要总结重复的密钥.所以,这个Hash::[]方法在这里不起作用.没问题,请使用each_slice+ each_with_object然后:

words = ["en",200,"ru","120","es",140,"ru",240]

hash = words.each_slice(2).each_with_object({}) do |(k, v), memo|
  memo[k] ||= 0
  memo[k] += v.to_i
end

hash # => {"en"=>200, "ru"=>360, "es"=>140}
Run Code Online (Sandbox Code Playgroud)