JSFiddle - React, Tailwind, and code Playground
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);
});
// JUST ADDED THIS CODE
array = array.reduce(function (carry, originalRow) {
var commentLines = originalRow[4].split(/\n/g);
var rows = commentLines.map(function (commentLine, rowIndex) {
var newRow = originalRow.map(function (originalCellContent, columnIndex) {
var cellContent = '';
if (rowIndex === 0) {
cellContent = originalCellContent;
}
if (columnIndex === 4) {
cellContent = commentLine;
}
return cellContent;
});
carry.push(newRow);
});
return carry;
}, []);
array = array.map(function(row) {
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(' | ') + ' |';
});
var sep = '+' + lengths.map(function(length) {
return new Array(length+3).join('-');
}).join('+') + '+';
if (header) {
return sep + '\n' + array[0] + '\n' + sep + '\n' +
array.slice(1).join('\n') + '\n' + sep;
} else {
return sep + '\n' + array.join('\n') + '\n' + sep;
}
}
var input = [{"date":"2016-01-28 11:40:59","nick":"lol","email":"[email protected]","www":"","comment":"nocomment\nlol\nlol\nlol","ip":"1844311719","avatar":"avatars\/default.png"},{"date":"2016-01-10 15:13:59","nick":"ehs","email":"what","www":"","comment":"ente rm comment.","ip":"1423172924","avatar":"avatars\/default.png"}];
var table = [Object.keys(input[0])].concat(input.map(function(row) {
return Object.keys(row).map(function(key) {
return row[key];
});
}));
var pre =...