This is a card in Dave's Virtual Box of Cards.
                
            
            
            Ruby: Printing N things per line from a list
Page created: 2025-07-24
            
            
            
            
        back to ruby
For some reason, I keep having a need to write Ruby scripts that output lists in reasonably-sized columns.
The key is to use Ruby’s Array slice() method to get the list in chunks.
This example doesn’t print pretty aligned columns, it just prints a certain quantity of items per line:
require 'json'
# Read a JSON file with a couple thousand items in an array:
jsonf = File.read('data-ordered-emoji.json')
list = JSON.parse(jsonf)
# Print in columns of 30 items
col=30
i=0
while i < list.length
    joined = list.slice(i, col).join(" ")
    puts(joined)
    i += col
end
As you can see, slice() allows you to specify a length in the second
parameter which extends beyond the length of the list without complaint, which
is very handy.
See also ruby-json