gpt4 book ai didi

用于循环重构的 coffeescript

转载 作者:行者123 更新时间:2023-12-03 11:09:34 25 4
gpt4 key购买 nike

我是 coffeescript 的新手,我想知道是否有更多有经验的用户可以建议对以下代码进行重构:

splitCollection: =>
maxLength = Math.ceil(@collection.length / 3)

sets = Math.ceil(@collection.length / maxLength)
start = 0

for x in [1..sets]
if x != sets
@render new BusinessUnits(@collection.models.slice(start, (maxLength + start)))
else
@render new BusinessUnits(@collection.models.slice(start, (@collection.length)))
start+= maxLength

coffeescript 中似乎没有 while 循环,这似乎暗示了一种更好的机制。

任何建议表示赞赏。

最佳答案

看起来您正在使用 Backbone.js,其中包括具有 groupBy 功能的 Underscore.js。

您可以创建一个“bucketNumber”函数:

bucketNumber = (value, index) ->
Math.floor( index / @collection.length * 3 )

然后将您的收藏分组:

sets = @collection.groupBy bucketNumber

现在,假设有 10 个项目,sets 应该看起来像这样:

{0: [{}, {}, {}], 1: [{}, {}, {}], 2: [{}, {}, {}, {}]}

从这里开始,它变得相当简单

for bucketNumber, bucket of sets
@render new BusinessUnits( bucket )

这是一个jsFiddle实际展示

关于用于循环重构的 coffeescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8210198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com