小编Tin*_*ner的帖子

根据匹配的ID删除数组中的重复项.轨道

所以我有一个.csv我导入数组的文件.他们都是逗号分开的,所以我已经为他们做了一个很好的阵列.

现在我正在尝试找到匹配id的记录,这样我就可以删除重复项,只保留最后遇到的内容.ID例如使用.

我已导入到数组但由于某种原因我无法获得像uniq这样的工具来显示新的唯一列表,即使我在它上面执行.length,它返回正确的行数.

任何帮助将不胜感激.

    lines = []
    i = 0

    file = File.open("./properties.csv", "r")

    elements = Array[]
    element2 = Array[]
    output = Array[]

    while (line = file.gets)
        i += 1
      # use split to break array up using commas
        arr = line.split(',')
        elements.push({ id: arr[0], streetAddress: arr[1], town: arr[2], valuationDate: arr[3], value: arr[4] })
    end

    file.close

    # Loop through array and sort nicely
     element2 = elements.group_by { |c| c[:id] }.values.select { |elements| elements.size > 1 …
Run Code Online (Sandbox Code Playgroud)

ruby arrays

1
推荐指数
1
解决办法
125
查看次数

Chaning Ruby regexp运算符

我正在编写一个过滤程序,它读取包含地址数据的CSV文件,并排除位于新月(cres),avenue(ave)或place(pl)中的行.

这是一些示例输入:

data = <<CSV
ID,Street address,Town,Valuation date,Value
1,1 Northburn RD,WANAKA,1/1/2015,280000
2,1 Mount Ida PL,WANAKA,1/1/2015,280000
3,1 Mount Linton AVE,WANAKA,1/1/2015,780000
4,1 Centre CRES,WANAKA,1/1/2015,295000
CSV

require 'csv'

elements = []
CSV.parse(data, headers: true, header_converters: :symbol) do |row|
  elements << row.to_h
end
elements
#=> [
#     {:id=>"1", :street_address=>"1 Northburn RD", :town=>"WANAKA", :valuation_date=>"1/1/2015", :value=>"280000"},
#     {:id=>"2", :street_address=>"1 Mount Ida PL", :town=>"WANAKA", :valuation_date=>"1/1/2015", :value=>"280000"},
#     {:id=>"3", :street_address=>"1 Mount Linton AVE", :town=>"WANAKA", :valuation_date=>"1/1/2015", :value=>"780000"},
#     {:id=>"4", :street_address=>"1 Centre CRES", :town=>"WANAKA", :valuation_date=>"1/1/2015", :value=>"295000"}
#   ]
Run Code Online (Sandbox Code Playgroud)

我可以使用简单的正则表达式来过滤三个中的一个,即/pl/ …

ruby regex

0
推荐指数
1
解决办法
34
查看次数

标签 统计

ruby ×2

arrays ×1

regex ×1