每个索引在铁轨上都有一定数量的红宝石

时间:2016-04-21 08:24:51

标签: ruby-on-rails ruby

我认为这是一个愚蠢的问题,但我已经搜索过高低不一的答案,并且没有找到任何答案。

array.each_with_index |row, index|
  puts index
end

现在,我只想打印数组的前十项。

array.each_with_index |row, index|
  if (index>9)
     break;
  end
   puts index
end

有比这更好的方法吗?

2 个答案:

答案 0 :(得分:13)

使用Enumerable#take

array.take(10).each_with_index |row, index|
   puts index
end

如果条件更复杂,请使用take_while

经验法则是:迭代器可能被链接:

array.take(10)
     .each
   # .with_object might be chained here or there too!
     .with_index |row, index|
   puts index
end

答案 1 :(得分:3)

另一种解决方案是使用Enumerable#first

array.first(10).each_with_index do |row, index|
  puts index
end