2013-08-23 51 views
0

增量紅寶石陣列I具有以下的數組:迭代中的4

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 << csv_array[0..3]
csv << csv_array[4..7]

依此類推,無論數組中有多少項?我正在使用紅寶石1.9.3。

回答

3
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] 
+0

黃金時間。感謝您的幫助,這完美地工作。 – Luigi

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]]