【问题标题】:Iterate over Ruby Array in increments of 4以 4 为增量迭代 Ruby 数组
【发布时间】:2013-08-26 21:16:47
【问题描述】:

我有以下数组:

csv_array = [1,2,3,4,5,6,7,8,9,10]

我需要将数组中的每个项目写入一个单独的 CSV 行,以 4 个为一组。如果我这样做

CSV.open("Content_File.csv", "wb") do |csv|
    csv << csv_array
end

我得到了一个整个数组的 csv 文件,它分布在一行中。

我需要我的 csv 文件如下所示:

1,2,3,4

5,6,7,8

9,10

如何写一个 ruby​​ 脚本来表示

csv &lt;&lt; csv_array[0..3]
csv &lt;&lt; csv_array[4..7]

等等,不管数组中有多少项?我正在使用 ruby​​ 1.9.3。

【问题讨论】:

    标签: ruby arrays csv


    【解决方案1】:

    试一试

     csv_array.each_slice(4) {|a| csv.push(a)}
    

    下面:

    csv_array = [1,2,3,4,5,6,7,8,9,10]
    csv = []
    csv_array.each_slice(4) {|a| csv.push(a)}
    csv 
    # => [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]]
    

    【讨论】:

      【解决方案2】:
      csv_array = [1,2,3,4,5,6,7,8,9,10]
      
      csv_array.each_slice(4) do |chunk|
        p chunk
      end
      # >> [1, 2, 3, 4]
      # >> [5, 6, 7, 8]
      # >> [9, 10]
      

      【讨论】:

        猜你喜欢
        • 2017-06-06
        • 1970-01-01
        • 2011-05-19
        • 2018-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        相关资源
        最近更新 更多