In the below function I'm fetching data from a JSON object, then creating and populating a HTML table with the contents. Yes the code is readable but I feel that it just looks too long winded for what it is. Any suggestions to how this could be simplified or made more concise?
function makeTable(data) { let table = document.createElement('table'); table.id = 'itemData'; let thead = document.createElement('thead'); table.appendChild(thead); let tbody = document.createElement('tbody'); table.appendChild(tbody); let header = document.createElement('tr'); let dateHeader = document.createElement('th'); let item1Header = document.createElement('th'); let item2Header = document.createElement('th'); let item3Header = document.createElement('th'); let item4Header = document.createElement('th'); let item5Header = document.createElement('th'); let item6Header = document.createElement('th'); let item7Header = document.createElement('th'); dateHeader.appendChild(document.createTextNode('Date')); item1Header.appendChild(document.createTextNode('Item 1')); item2Header.appendChild(document.createTextNode('Item 2')); item3Header.appendChild(document.createTextNode('Item 3')); item4Header.appendChild(document.createTextNode('Item 4')); item5Header.appendChild(document.createTextNode('Item 5')); item6Header.appendChild(document.createTextNode('Item 6')); item7Header.appendChild(document.createTextNode('Item 7')); header.appendChild(dateHeader); header.appendChild(item1Header); header.appendChild(item2Header); header.appendChild(item3Header); header.appendChild(item4Header); header.appendChild(item5Header); header.appendChild(item6Header); header.appendChild(item7Header); thead.appendChild(header); for (let i = 0; i < Object.keys(data).length; i++) { let tr = document.createElement('tr'); let dateCell = document.createElement('td'); let item1Cell = document.createElement('td'); let item2Cell = document.createElement('td'); let item3Cell = document.createElement('td'); let item4Cell = document.createElement('td'); let item5Cell = document.createElement('td'); let item6Cell = document.createElement('td'); let item7Cell = document.createElement('td'); dateCell.appendChild(document.createTextNode(Object.keys(data)[i])); item1Cell.appendChild(document.createTextNode(data[Object.keys(data)[i]]['item1'])); item2Cell.appendChild(document.createTextNode(data[Object.keys(data)[i]]['item2'])); item3Cell.appendChild(document.createTextNode(data[Object.keys(data)[i]]['item3'])); item4Cell.appendChild(document.createTextNode(data[Object.keys(data)[i]]['item4'])); item5Cell.appendChild(document.createTextNode(data[Object.keys(data)[i]]['item5'])); item6Cell.appendChild(document.createTextNode(data[Object.keys(data)[i]]['item6'])); item7Cell.appendChild(document.createTextNode(data[Object.keys(data)[i]]['item7'])); tr.appendChild(dateCell); tr.appendChild(item1Cell); tr.appendChild(item2Cell); tr.appendChild(item3Cell); tr.appendChild(item4Cell); tr.appendChild(item5Cell); tr.appendChild(item6Cell); tr.appendChild(item7Cell); tbody.appendChild(tr); } document.body.appendChild(table); }