Ruby:如何知道多维数组的深度

标签 ruby arrays multidimensional-array

这是我在作业中遇到的问题。

  • 数组A有两个元素:数组B和数组C。
  • 数组B有两个元素:数组D和数组E
  • 在某些时候,数组 X 只包含两个元素:字符串 a 和字符串 b。

我不知道如何确定数组 A 的深度。例如:

arrA = [
         [
           [1,2]
         ]
       ]

我测试了:A[0][0][0] == nil,它返回 false。此外,A[0][0]..[0] == nil 总是返回 false。所以,我无法通过这种方式知道数组 A 的深度。

最佳答案

如果这不是您要找的,它应该是一个很好的起点:

def depth (a)
  return 0 unless a.is_a?(Array)
  return 1 + depth(a[0])
end

> depth(arrA)
=> 3

请注意,这仅测量第一个分支的深度。

关于Ruby:如何知道多维数组的深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862197/

相关文章:

arrays - 从数组中删除套接字工作不正确

python - 交互式 CLI 包 - 复选框和选择

javascript - 如何将子数组对象插入javascript中的数组

Ruby 断管 @io_write - <STDOUT>

javascript - Twilio sendMessage 未发送到数组中的所有值

JAVA反对二维数组,不能设置数组中的元素,也不能调用数组中的函数

将平面指针转换为多维数组

java - 创建 Optionals 的多维泛型数组

ruby-on-rails - Luhn算法Ruby无法识别AMEX

ruby - 您如何使用 ruby​​ 正确使用 'match' 为文件中的每一行构建哈希?