调用一个数组,让它不仅显示每个项目,还显示它们在数组中的位置

时间:2017-12-31 02:04:23

标签: arrays ruby

尝试根据数组中的项目数量,为数组中的项目指定特定位置。举个例子,如果我在我面前连续有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然后将该数字转换回整数但我不知道在哪里开始使用它。提前感谢您的帮助。

2 个答案:

答案 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}