我想更改给定数组的索引:
arr = ["cat", "tiger", "lion"]
所以狮子项目的价值为5指数,老虎的价值为4指数,3指数为cat-item
这可能吗?
谢谢!
答案 0 :(得分:1)
您无法使用each_with_index
执行此操作,但可以使用with_index
执行此操作。
arr.each.with_index(3) do |e, i|
...
end
答案 1 :(得分:1)
是的,您可以创建一个索引方法来访问它。
def get_by_index(array, value)
array[value-3]
end
您还可以创建一个从数组继承的新数组子类,并重新定义方括号方法,如下所示:
答案 2 :(得分:0)
你可以用Hash
:
hash = {
3 => "cat",
4 => "tiger",
5 => "lion"
}
hash[4]
#=> "tiger"
如果要从数组转换为哈希,可以执行以下操作:
arr = ["cat", "tiger", "lion"]
hash = Hash[arr.each_with_index.map{|v,i| [i+3, v] }]
#=> {"cat"=>3, "tiger"=>4, "lion"=>5}