如何在阵列旁边打印阵列的内容?

时间:2015-03-26 18:40:09

标签: ruby arrays

我正在尝试将阵列中的每个项目打印出来,并与其位置一致。例如。

bear[0]

这是代码:

animals = ["bear", "ruby", "peacock", "kangaroo", "whale", "platypus"]

for i in animals
    puts i
end

3 个答案:

答案 0 :(得分:4)

在Ruby中,使用Enumerable module提供的方法是惯用的,这些方法混合到Array class中而不是使用传统的for - 循环:

animals.each_with_index { |x,i| puts "#{x}[#{i}]" } # => animals
# bear[0]
# ruby[1]
# peacock[2]
# kangaroo[3]
# whale[4]
# platypus[5]

PickAxe Book在其关于Blocks and Iterators的部分中提到了这一点。

答案 1 :(得分:1)

你可以把它写成

animals.each_index { |ind| puts "animal-#{animals[ind]} at #{ind}" }

答案 2 :(得分:1)

你有几种方法可以解决这个问题:

1. animals.each_with_index do |key,index| 
    puts "#{key}[#{index}]"
   end

2. animals.each_index do |index| 
    puts "#{animals[index]}[#{index}]"
   end

3. i = 0
   animals.each do |animal|
     puts "#{animal}[#{i}]"
     i += 1
   end

4. for i in 0..animals.length
    puts "#{animals[i]}[#{i}]"
   end