You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ruby中检测形如[[], [], []]的嵌套数组是否为空?

Ruby判断全空嵌套数组的方法

如果只是要检查第一层子数组全为空,最简单直接的方式是用all?结合empty?:

array = [[], [], []]
array.all?(&:empty?) # => true

这个方法会遍历数组里的每一个元素,检查它们是否都是空数组。如果有任何一个子数组非空(比如[[1], [], []]),就会返回false。

如果需要处理更深层次的嵌套数组(比如[[[]], [], [[]]]这种多层空数组嵌套),可以写一个递归方法来逐层检查:

def deeply_empty?(array)
  array.all? do |element|
    # 每个元素必须是数组,且递归检查是否深层为空
    element.is_a?(Array) ? deeply_empty?(element) : false
  end
end

# 测试示例
deeply_empty?([[], [], []]) # => true
deeply_empty?([[[]], [], [[]]]) # => true
deeply_empty?([[1], [], []]) # => false
deeply_empty?([[], [2], []]) # => false

这个递归方法会确保所有嵌套层级里的元素都是空数组,只要有一个层级出现非数组元素或者非空数组,就会返回false。

内容的提问来源于stack exchange,提问作者Stefan Hansch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 10:05:21