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]
并最终进一步删除条目。 (尽管这也可能正是您想要的)。
我将一些数组放入一个名为 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]
并最终进一步删除条目。 (尽管这也可能正是您想要的)。