将数组元素转换为哈希值

use*_*182 1 ruby hash

我有一个包含以下元素的数组:

results = ["test=complete", "test2=passed", "test3=failed", "test4=successful"]
Run Code Online (Sandbox Code Playgroud)

我想将此数组转换为具有以下键和值的哈希:

results_hash = {"test": "complete", "test2": "passed", "test3": "failed", "test4": "successful"}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?不确定是否最好使用set,hash等.

saw*_*awa 6

在Ruby 2.6中:

results.to_h{|s| s.split("=").then{|k, v| [k.to_sym, v]}}
# => {:test=>"complete", :test2=>"passed", :test3=>"failed", :test4=>"successful"}
Run Code Online (Sandbox Code Playgroud)

  • 很高兴知道.我看到`内核#then`将是`内核#yield_self`别名(在[对象#yield_self \文件(http://ruby-doc.org/core-2.5.1/Object.html#method-i- yield_self). (2认同)
  • @CarySwoveland这也是新的,但我指向2.6的重点是`Hash#to_h`现在可以占用一块. (2认同)