我刚开始学习ruby.
现在我需要弄清楚多维数组的维度.我查看了所有数组方法的 ruby-docs,但我找不到返回维度的方法.
现在我需要弄清楚多维数组的维度.我查看了所有数组方法的 ruby-docs,但我找不到返回维度的方法.
这是一个例子:
对于[[1,2],[3,4],[5,6]],维度应为2.
对于[[[1,[2,3]],[[3,[5]]],维度应为3.
解决方法
没有内置函数,因为对于数组的“维度”,您可能有多个定义.
Ruby的数组可能包含任何内容,包括哈希或其他数组.这就是为什么我认为你需要为此实现自己的功能.
假设维度是指“最深的嵌套级别的数组”,这应该可以解决问题:
def get_dimension a return 0 if a.class != Array result = 1 a.each do |sub_a| if sub_a.class == Array dim = get_dimension(sub_a) result = dim + 1 if dim + 1 > result end end return result end
编辑:因为ruby是一种很棒的语言,并且允许你做一些花哨的东西,你也可以使get_dimension成为一个Array的方法:
class Array def get_dimension ... # code from above slightly modified end end