Ruby 从多维数组中删除值

Ruby delete values from multi dimensional array

我将一些数组放入一个名为 alist[] 的数组中。我正在遍历数组以打印出 alist[] 的所有值。我需要在 alist[2][i] 找到一个值,然后从我的数组 [=] 中删除 alist[0][i]alist[1][i]alist[2][i]alist[3][i]alist[4][i] 20=]。 (我删除了填充数组的代码,以便更容易阅读我的问题)

这是我在下面的最佳猜测,但它不起作用。有人有什么想法吗?

#declare arrays
nsymbol = []
sname = []
etf = []
testv = []
financials = []
alist = []

#create one array with all other arrays
alist.push(nsymbol, sname, etf, testv, financials)

(0...nsymbol.length).each do |i|
  (0...alist.length).each do |j|
    if (alist[2][i] || '').include? 'Y'
      alist.delete_at(0)
      alist.delete_at(1)
      alist.delete_at(2)
      alist.delete_at(3)
      alist.delete_at(4)
    end
    #print whole array out
    puts alist[j][i]
  end
end

通过执行 alist.delete_at(0) 你删除了 alist 的第一项可以这么说 alist[0][0..N] 但你想删除 alist[0][i] 所以你需要删除 i[= alist[0] 的第 21= 项。

alist[0].delete_at(i)
alist[1].delete_at(i)
# etc.

因为您是在删除新内容后才打印数组,所以这无关紧要,但如果您想在此之后使用数组,则应在删除条目后打破循环,因为删除条目会导致另一个条目现在是项目 alist[2][i] 并最终进一步删除条目。 (尽管这也可能正是您想要的)。