我将一些数组放入一个名为alist[]
的数组中。我正在迭代数组以打印出alist[]
的所有值。我需要在alist[2][i]
找到一个值,然后从我的数组{{alist[0][i]
中移除alist[1][i]
,alist[2][i]
,alist[3][i]
,alist[4][i]
,alist[][]
1}}。 (我删除了填充我的数组的代码,以便更容易阅读我的问题)
这是我最好的猜测,但它不起作用。有人会有任何想法吗?
#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
答案 0 :(得分:2)
通过执行alist.delete_at(0)
,您删除了alist
的第一项,可以说alist[0][0..N]
,但您要删除alist[0][i]
,因此您需要删除i 项alist[0]
。
alist[0].delete_at(i)
alist[1].delete_at(i)
# etc.
因为您在删除新内容后正在打印数组并不重要,但如果您想在此之后使用数组,则应在删除条目后中断循环,因为删除条目会导致另一个条目现在是项目alist[2][i]
,并最终进一步删除条目。 (虽然这也可能正是你想要的)。