【问题标题】:Overlapping equivalent of Array#slice [duplicate]Array#slice 的重叠等效项 [重复]
【发布时间】:2013-02-15 06:09:29
【问题描述】:

给定这个 Ruby 数组:

[1, 2, 3, 4, 5]

像这样迭代它最简单的方法是什么?

[[1,2], [2,3], [3,4], [4,5]]

还是这个?

[[1,2,3], [2,3,4], [3,4,5]]

【问题讨论】:

  • 这是来自 exercism.io 的问题之一,哈哈

标签: ruby arrays


【解决方案1】:

each_cons (docs) 执行此操作。您只需将所需的块大小传递给它,它就会将它们交给您传递的块。

如果你真的想要数组,那么你当然可以用to_a 链接它,例如

(1..5).each_cons(3).to_a

【讨论】:

  • 这太棒了,我不知道#each_cons 方法...爱上了Ruby!
  • 正确!我想我记得我在 stdlib 中的某个地方看到过它...... 8P
  • @hwatkins,Ruby 的 Enumerable 充满了这样的优点。
猜你喜欢
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
  • 2010-10-15
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多