下面的代码有效,但我想知道是否有更好的方法可以使用我不熟悉的咖啡脚本的一些功能。
问题是,我需要对项目进行分页,但分页每次都会增加。
如果我以数字 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