加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 23:01:10 所属栏目:百科 来源:网络整理
导读:我刚开始学习ruby. 现在我需要弄清楚多维数组的维度.我查看了所有数组方法的 ruby-docs,但我找不到返回维度的方法. 这是一个例子: 对于[[1,2],[3,4],[5,6]],维度应为2. 对于[[[1,[2,3]],[[3,[5]]],维度应为3. 解决方法 没有内置函数,因为对于数组的“维度”
我刚开始学习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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读