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

Groovy中如何去除数组空元素并展开多余嵌套括号

错误原因

你原先使用的myArray.removeAll(['[]'] as Object[])不生效,是因为你传入的匹配项是字符串"[]",和数组中实际的空列表对象类型不匹配,无法命中需要移除的空数组,因此返回false没有修改原数组。

正确实现方式

Groovy内置了集合的扁平化操作方法,无需多层遍历即可实现需求:

方案1(最简洁)

直接使用flatten()方法递归展开所有嵌套集合,展开过程中空数组不会生成任何元素,最终直接得到目标结构:

myArray = [[],[],[],[],['test', 'hello'], [], [], [['one', 'two'], ['three','four']], [], ['five']]
def result = myArray.flatten()

执行后result的值就是预期的['test','hello','one','two','three','four','five']。

方案2(增加空值过滤)

如果需要同时过滤展开后可能存在的null、空字符串等假值,可以增加findAll()过滤:

def result = myArray.flatten().findAll()

方案3(先移除顶层空数组再展开)

如果你需要先显式清理顶层空元素再做扁平化,可以用闭包形式的removeAll匹配空集合:

// 移除所有顶层空数组
myArray.removeAll { it instanceof List && it.isEmpty() }
// 再扁平化嵌套结构
def result = myArray.flatten()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:45:04