以下のコードは機能しますが、私がよく知らないコーヒースクリプトの機能のいくつかを使用するより良い方法があるかどうか疑問に思っています。
問題はこれです。アイテムをページングする必要がありますが、ページングは毎回増加します。
たとえば、20という数字を例にとると、次のページが作成されます。
1-3 4-7 8-15 16-20
私は次のテストと合格するコードを持っています:
module 'Remainder',
setup: ->
@remainder = 20
test 'splits remainder incrementally', ->
parts = @remainder.increasingSplit()
equal parts[0], '1 - 3', ''
equal parts[1], '4 - 7', ''
equal parts[2], '8 - 15', ''
equal parts[3], '16 - 20', ''
Number.prototype.increasingSplit = ->
start = 1
nextSplit = 3
parts = []
finished = false
while !finished
if nextSplit > @
parts.push "#{start} - #{@}"
break
parts.push "#{start} - #{nextSplit}"
start = nextSplit + 1
nextSplit = nextSplit * 2 + 1
parts