1

我有以下数组:

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

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

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

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

我需要我的 csv 文件看起来像这样:

1,2,3,4

5,6,7,8

9,10

我怎样才能写一个红宝石脚本说

csv << csv_array[0..3]
csv << csv_array[4..7]

等等,不管数组中有多少项?我正在使用红宝石 1.9.3。

4

2 回答 2

4
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]
于 2013-08-23T18:17:31.270 回答
2

尝试作为

 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]]
于 2013-08-23T18:17:40.633 回答