在ruby中获取多维数组的维度

我刚开始学习ruby.
现在我需要弄清楚多维数组的维度.我查看了所有数组方法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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...