我必须用Ruby解析制表符分隔的文本文件,以从中提取一些数据.由于某些未知的原因,一些列没有使用,只是基本上是间隔物; 我想忽略这些列,因为我不需要它们的输出(但是我不能忽略所有空列,因为一些合法的列具有空值).我已经知道这些列的索引(例如第6,14,24和38列).
虽然我可以在解析文件时添加一个条件并说解析它,除非它是其中一个列,这似乎不是"Rubyish" - 是否有更好,更优雅的方法来处理它?RegExps,也许?我想做一些类似[6, 14, 24, 38].each { |x| columns.delete_at(x) }
删除未使用的列的事情,但这将迫使我重新确定我实际需要的列的索引.我真正想要做的就是遍历整个事情,检查当前列的索引,如果它是"坏"列之一,则忽略它.然而,拥有像这样的代码似乎非常难看unless x == 6 || x == 14 || x == 24 || x == 38
不需要像这样的大规模条件.
bad_cols = [6, 14, 24, 38] columns.each_with_index do |val,idx| next if bad_cols.include? idx #process the data end