/** * * * @param {Array} arr Array of object to convert to HTML table * @param {Array} takeOnly Array of keys to keep in the resulting HTML table * @param {Array} blacklist Array of keys to skip in the resulting HTML table * @return {String} HTML Table */ export const ArrayOfObjectsToTable = function ({ arr = [], takeOnly = [], blacklist = [] }) { let classes = { table : 'table table-sm table-responsive table-border', tr:'d-flex', td: 'flex-fill' } let html = '' let table = [] arr.forEach((row, i) => { let columns = Object.keys(row) columns = columns.filter(col => !blacklist.includes(col)) if (takeOnly.length) columns = columns.filter(col => takeOnly.includes(col)) let tr = [] columns.forEach(col => { let td = arr[i][col] tr.push(td) }) table.push(tr) }) let rowsHtml = table.map(row => { let tr = row.map(col => { return `${col}` }).join('') return `${tr}` }).join('') html = `${rowsHtml}
` return html; }