我有一个阵列
foo = %w(1 2 3 4 5 6 7 8 9 10)
Run Code Online (Sandbox Code Playgroud)
如何将其拆分或"分块"为更小的数组?
class Array
def chunk(size)
# return array of arrays
end
end
foo.chunk(3)
# => [[1,2,3],[4,5,6],[7,8,9],[10]]
Run Code Online (Sandbox Code Playgroud) 在Ruby 1.8.6中,我有一个数组,比如100,000个用户id,每个用户id都是一个int.我想在这些用户ID上执行一段代码,但我想以块的形式执行.例如,我想一次处理100个.我怎样才能尽可能简单地实现这一目标?
我可以做类似下面的事情,但可能有一个更简单的方法:
a = Array.new
userids.each { |userid|
a << userid
if a.length == 100
# Process chunk
a = Array.new
end
}
unless a.empty?
# Process chunk
end
Run Code Online (Sandbox Code Playgroud) 我有一个大型数组,我想将其均匀地分成n个数组.
我尝试使用each_slice,但只根据传递给它的数字参数将数组切成小部分.
我怎样才能做到这一点?
我有一个随机数,我想把它分成几个部分(加数),条件是一个部分不能超过20,部分必须尽可能彼此接近.
例如,如果我的随机数为41,则加数应为14,14,13.如果随机数为60,则加数应为20,20,20.如果随机数为21,则加数应为11和10,依此类推.
我的代码是在Ruby(Rails)中,所以我最欣赏一个答案,它在Ruby中提供了一个有效的实现,尽管也欢迎使用伪代码或其他编程语言.
这是我发现的数组,但我真的需要用数字来做这件事:" 将数组拆分成红宝石中的相等部分 "