JSFiddle - React, Tailwind, and code Playground
HTML
<pre id="out"></pre>
JavaScript
const columnize = (items, rows) => {
const toColumns = (table, item, iteration) => {
let row = iteration % rows
table[row] = table[row] || []
table[row].push(item)
return table
}
return items.reduce(toColumns, [])
}
const numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ]
let out = document.getElementById('out')
let list = columnize(numbers, 5)
for (var column in list) {
console.log(column, list[column]);
var item = list[column]
var line = item.reduce((line, item) => line + item + ' ', '')
out.textContent += line + ' \n'
}