我正在尝试将阵列中的每个项目打印出来,并与其位置一致。例如。
bear[0]
这是代码:
animals = ["bear", "ruby", "peacock", "kangaroo", "whale", "platypus"]
for i in animals
puts i
end
答案 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