Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby内置方法从一维数组创建多维数组_Ruby_Arrays_Idioms - Fatal编程技术网

Ruby内置方法从一维数组创建多维数组

Ruby内置方法从一维数组创建多维数组,ruby,arrays,idioms,Ruby,Arrays,Idioms,如果我有这样一个数组:[0,1,2,3,4,5],是否有一个内置方法来创建此数组: [[0,1,2],[3,4,5]给定宽度为3?如果没有内置的方法,我如何改进它 def multi_to_single(array, width) return [].tap{|md_array| (array.length.to_f / width).ceil.times {|y| row = (array[(y*width), width])

如果我有这样一个数组:
[0,1,2,3,4,5]
,是否有一个内置方法来创建此数组:
[[0,1,2],[3,4,5]
给定宽度为3?如果没有内置的方法,我如何改进它

def multi_to_single(array, width)
    return [].tap{|md_array|
        (array.length.to_f / width).ceil.times {|y|
            row = (array[(y*width), width])
            md_array.push( row + Array.new(width - row.length))
        }
    }
end
我觉得我错过了一些明显的东西,因为我已经有一段时间没有编写ruby了! 先谢谢你,呃


编辑:它需要在核心库中,所以没有ruby on rails或任何东西。

您可以在rails中使用专门用于解决此问题的方法

您可以使用Rails中的方法来解决这个问题

我想这就是你想要的:

[1,2,3,4,5,6]。每个_片(3)。到_a#=>[1,2,3],[4,5,6]


使用ruby 1.9.2p136(2010-12-25修订版30365)

我想这就是您想要的:

[1,2,3,4,5,6]。每个_片(3)。到_a#=>[1,2,3],[4,5,6]


使用ruby 1.9.2p136(2010-12-25修订版30365)

这非常好,尽管我正在核心库中寻找一些东西,但我将编辑我的问题以澄清这一点。虽然查看源代码很有用!我认为它不直接存在于核心库中。它不存在吗?好的,在把这个问题留一段时间后,我会把你的答案标记为正确,看看是否还有其他人回答。我想如果Rails开发人员实现了它,那是因为它在core中丢失了。@Ell:将实现用于组内的。Skydreamer在上面的链接中列出了源代码。我看不到对其他Rails库的依赖,它比您的尝试更简单、更高效。这非常好,尽管我正在核心库中寻找一些内容,但我将编辑我的问题以澄清这一点。虽然查看源代码很有用!我认为它不直接存在于核心库中。它不存在吗?好的,在把这个问题留一段时间后,我会把你的答案标记为正确,看看是否还有其他人回答。我想如果Rails开发人员实现了它,那是因为它在core中丢失了。@Ell:将实现用于组内的。Skydreamer在上面的链接中列出了源代码。我看不到对其他Rails库的依赖,它比您的尝试更简单、更高效。这也是in_groups_of的实现方式。in_groups_of的实现方式也是如此。