gpt4 book ai didi

Ruby 将数组分成 X 组

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:13 24 4
gpt4 key购买 nike

我需要将一个数组拆分成 X 个较小的数组。我不关心较小数组中的元素数量,我只需要从较大的数组创建 X 个数组。我一直在阅读,似乎我需要一种类似于 in_groups 的方法来自rails的方法。我现在不使用 Rails,只使用 Ruby。

最佳答案

仅仅为了获得该功能而要求 Rails 是多余的。只需使用 each_slice:

team = ['alice', 'andy', 'bob', 'barry', 'chloe', 'charlie']
=> ["alice", "andy", "bob", "barry", "chloe", "charlie"]

team.each_slice(2).to_a
=> [["alice", "andy"], ["bob", "barry"], ["chloe", "charlie"]]

each_slice 的参数是每个切片中的元素数(可能最后一个切片除外)。由于您正在寻找 X 切片,因此您可以执行以下操作:

team.each_slice(team.length/X).to_a

这并不完美,因为如果数组长度不是 X 的倍数,您将获得一个额外的切片,但可以让您进入大致范围,您可以从那里根据您的具体需求进行调整。

既然你说你不关心每个有多少,你可以只使用上面的 length/x 方法,然后检查你是否有太多的切片。如果是这样,只需将最后两个切片合并为一个超大切片。这可能会避免一些繁琐的数学运算或浮点运算。

关于Ruby 将数组分成 X 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28006179/

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