尝试根据数组中的项目数量,为数组中的项目指定特定位置。举个例子,如果我在我面前连续有10把椅子,基于第一个走进来的人,我将为他们分配第一把椅子第二人,第二把椅子等等(基本上是阵列的作用)。但是,每当我将一个项目添加到数组中时,我希望该项目(在调用数组时)在最后显示其位置。
array = ["item1 is in position 1", "item2 is in position 2"...]
到目前为止,这是我的想法。顺便说一下,它被设计成一种简单的方法,根据它们在阵列中的位置给每个项目一个数字。
def keeping_track(array)
new_array = []
array.each {|item| new_array << "#{item} is currently in position ____"}
return new_array
end
____区域是我迷失的地方,我也是红宝石的新手。我认为有一种方法可以调用数组中的项目位置,添加1然后将该数字转换回整数但我不知道在哪里开始使用它。提前感谢您的帮助。
答案 0 :(得分:2)
这可能是另一种方法,使用map。
def keeping_track(array)
array.each_index.map {|item| "#{array[item]} is currently in position #{item + 1}"}
end
答案 1 :(得分:1)
使用each_with_index
array.each_with_index {|item, position| new_array << "#{item} is currently in position #{position}"}
这将从0开始编号,如果你想把第一个位置显示为位置1那么你可以#{position + 1}