JSFiddle - React, Tailwind, and code Playground

by joplomacedo

JavaScript

function createTable() {
    const items = [];
    
    function padEnd(str, totalPadding, char = ' ') {
    	let padding = Array.from(Array(totalPadding + 1)).join(char);    
			return str+padding;
    }

    return {
        addItem(label, value) {
            items.push([label, value]);
        },
        print() {
            const maxLabelLength = items.reduce(( max, [label] ) => {
                return Math.max(max, label.length);
            }, 0);

            items.forEach( ([label, value]) => {
                const totalPadding = maxLabelLength - label.length;
                const paddedLabel = padEnd(label, totalPadding) + ': ';
                console.log(paddedLabel+ value);
            })
        }
    }
}


const table = createTable();

table.addItem('lol look', 4)
table.addItem('at dis', 4)
table.addItem('lol look at  dis', 4)
table.addItem('jus', 4)
table.addItem('final fantasy', 4)
table.print()