我正在尝试编写一个my_transform带有数组的方法,如下所示:
items = ["Aqua", "Blue", "Green", "Red", "Yellow"]
Run Code Online (Sandbox Code Playgroud)
并显示项目的索引如下:
item_to_position = {"Aqua"=>0, "Blue"=>1, "Green"=>2, "Red"=>3, "Yellow"=>4}
Run Code Online (Sandbox Code Playgroud)
我应该能够执行:
my_transform(items) == item_to_position
Run Code Online (Sandbox Code Playgroud)
并收到true.
我考虑过使用each_with_index.我应该先说:
items = ["Aqua", "Blue", "Green", "Red", "Yellow"]
hash = Hash[*array]
def my_transform
Run Code Online (Sandbox Code Playgroud)
我必须将字符串转换为哈希值.任何帮助表示赞赏.
我会用Array#to_h:
items = ["Aqua", "Blue", "Green", "Red", "Yellow"]
items.each_with_index.to_h
#=> { "Aqua"=>0, "Blue"=>1, "Green"=>2, "Red"=>3, "Yellow"=>4 }
Run Code Online (Sandbox Code Playgroud)
请注意,这to_h是在Ruby 2.1中引入的
使用to_h您的my_transform方法可能如下所示:
def my_transform(items)
items.each_with_index.to_h
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
979 次 |
| 最近记录: |