如何从可变长度的数组中获得一个定长的可变长度数组的子集?

| 我有一个长度为n的可变对象数组。由我数据库中的记录数定义。 我需要一个函数来获取指定长度m的数组的子集(保持对象有序并始终从索引0开始),其中m可以是我传入的任何整数。 例如如果n = 10且m = 4 数组foo = [0、1、2、3、4、5、6、7、8、9] 子集a = [0,1,2,3] 子集b = [4、5、6、7] 子集c = [8,9] 因此,我需要以编程方式能够说:“给定数组长度为n的第i个数组的长度m的第i个子集。”使用前面的示例:“给定长度的第二个子集来自foo \“ =>的四个返回位置[4,5,6,7]的项目。 我希望这是有道理的。红宝石解决方案的协助将不胜感激!谢谢!     
已邀请:
        
   foo.each_slice(subset_length).to_a[subset_index]
例如
foo.each_slice(4).to_a[2]
返回\“来自foo的长度为4的第二个子集”。     
        您可以使用
Enumerable#each_slice
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].each_slice(4).to_a
#=> [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9]]
    

要回复问题请先登录注册