【问题标题】:Ruby display every elementRuby 显示每个元素
【发布时间】:2014-05-02 19:39:54
【问题描述】:

在下面的代码部分中,我试图从存储在@record.main_id 中的 CSV 中提取一列。我正在拆分代码以获取每个逗号分隔值并将其存储在列 id 中的 MySQL 表 table_val 中。 我需要将 main_id 的每个实例加载到 id 中,但不会加载重复的值。 例如 2,3,4,6,4,6,8。 我需要按顺序排列每个实例,但值被加载为 2、3、4、6、8。

def get_id
   @record.main_id.split(', ').map do |f|
    values = {
    id: f     
  }
  @att = Table_val.new(values)      

 end

【问题讨论】:

    标签: ruby csv-import


    【解决方案1】:

    怎么样:

    def get_id
       @record.main_id.split(', ').sort.uniq.map do |f|
        values = {
        id: f     
      }
      @att = Table_val.new(values)      
    
     end
    

    查看document 以获取有关uniqsort 的更多信息。

    【讨论】:

      【解决方案2】:

      假设@record.main_id 给出了一串以ids 分隔的逗号,例如:

      "2,3,4,6,4,6,8"
      # split(',') should give following array:
      ["2", "3", "4", "6", "4", "6", "8"]
      #Now
      ["2", "3", "4", "6", "4", "6", "8"].map {|f| values = {id: f} }
      #gives expected result:
      [{:id=>"2"}, {:id=>"3"}, {:id=>"4"}, {:id=>"6"}, {:id=>"4"}, {:id=>"6"}, {:id=>"8"}]
      

      所以它成功地得到了所有ids(有重复)并保持了序列,这不是目标吗?也许值是从 CSV 或什么东西弄乱了,放这段代码就可以了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-27
        • 2016-05-06
        • 2020-02-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多