如果有一个数组,其中每个项目都是一个数组,但可以为空,例如:
a = [ [], [8, 6], [7, 5, 3, 0], [], [9] ]
可以通过以下方式删除第一个非零子数组元素:
a[a.index { |item| item != [] }].shift
让a
处于这种状态:
[ [], [6], [7, 5, 3, 0], [], [9] ]
是否有更简洁的方法在Ruby中表达这一点,是否将a.index { |item| item != [] }
作为要删除的子数组的索引?
答案 0 :(得分:3)
您可以使用Enumerable#find
:
a.find { |e| !e.empty? }.shift
=> 8
a
=> [[], [6], [7, 5, 3, 0], [], [9]]
答案 1 :(得分:0)
您可以使用空数组替换子数组。这适用于确切陈述的问题,但可能无法推断出您正在寻找的内容。
a.map{[]}