JSFiddle - React, Tailwind, and code Playground

HTML

<pre></pre>

JavaScript

function ascii_table(array, header) {
            if (!array.length) {
                return '';
            }
            var lengths = array[0].map(function(_, i) {
                var col = array.map(function(row) {
                    if (row[i] != undefined) {
                        return row[i].length;
                    } else {
                        return 0;
                    }
                });
                return Math.max.apply(Math, col);
            });
            array = array.map(function(row, r) {
                var cols = row.map(function(item, i){
                  return item.split("\n")
                });
                var maxH = (cols.reduce(function(i,j){return i.length > j.length ? i : j})).length;
                console.log(r, maxH, cols);
                var rowStr = "";
                for (h=0;h<maxH;h++) {
                  rowStr += "| ";
                  for (c=0;c<cols.length;c++) {
                    if (c>0) rowStr += " | ";
                    var item = cols[c][h] || "";
                    var size = item.length;
                    if (size < lengths[c]) {
                      item += new Array(lengths[c]-size+1).join(' ');
                    }
                    rowStr += item;
                  }
                  rowStr += " |";
                  if (h<maxH-1) rowStr += "\n";
                }
//                return '| ' + row.map(function(item, i) {
//                    var size = item.length;
//                    if (size < lengths[i]) {
//                        item += new Array(lengths[i]-size+1).join(' ');
//                    }
//                    return item;
//                }).join(' | ') + ' |';
              return rowStr;
            });
            var sep = '+' + lengths.map(function(length) {
                return new Array(length+3).join('-');
            }).join('+') + '+';
            if (header) {
                return sep + '\n' + array[0] + '\n' + sep + '\n' +
        ...