【问题标题】:Ruby delete values from multi dimensional arrayRuby 从多维数组中删除值
【发布时间】:2015-04-05 15:46:11
【问题描述】:

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

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

#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

【问题讨论】:

    标签: ruby arrays multidimensional-array


    【解决方案1】:

    通过执行alist.delete_at(0),您删除了alist 的第一项,可以说是alist[0][0..N],但您想删除alist[0][i],所以您需要删除@987654325 的第i 项@。

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

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

    【讨论】:

    • 是的,这正是我想要的。然后我会将alist[] 转储到另一个大小正确的数组中
    猜你喜欢
    • 2014-05-26
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    相关资源
    最近更新 更多