x = "one two"
y = x.split
hash = {}
y.each do |key, value|
hash[key] = value
end
print hash
结果是:one =>零,两个=>零
我想做一个"一个" - 键,"两个" - 价值,但如何做到这一点?
它可能看起来像这样:"一个" => " 2"
答案 0 :(得分:3)
y
是一个数组,因此在块key
中是项目本身('one','two'),值始终为nil。
您可以使用splat运算符*
Hash[*y]
答案 1 :(得分:0)
更快一点的方法:
:nth-child
如果您正在寻找更通用的解决方案,其中x可能包含更多元素,请考虑以下内容:
x="one two"
Hash[[x.split]]
或者,如果您真的感觉很好看,请尝试使用inject:
hash = {}
x="one two three four"
x.split.each_slice(2) do |key, value| # each_slice(n) pulls the next n elements from an array
hash[key] = value
end
hash