I want to write some JavaScript to create a simple HTML table from an array that just contains numbers:
var array = [1,2,3,4,5,6,7,8,9,10];
You could iterate the array and build a new row if the remainder with 5 is zero.
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
tr;
array.forEach((v, i) => {
var td = document.createElement('td');
if (!(i % 5)) {
tr = document.createElement('tr');
document.getElementById('table0').appendChild(tr);
}
td.appendChild(document.createTextNode(v));
tr.appendChild(td);
});
<table id="table0"></table>
var array = [1,2,3,4,5,6,7,8,9,10];
var result = "<table border=1>";
result += "<tr>";
for (var j = 0; j < array.length; j++) {
result += "<td>" + array[j] + "</td>";
if ((j + 1) % 5 == 0) {
result += "</tr><tr>";
}
}
result += "</tr>";
result += "</table>";
document.body.innerHTML = result;
Please give it a try if that works
How about trying something like this? Explanations in the code. Also, untested so you might need to make some adjustments.
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// start the table
var table = document.createElement("table");
var currentRow;
for (var i = 0; i < array.length; i++) {
// put items in.
var item = document.createElement("td");
item.innerHTML = array[i];
// if we are at the
if (i % 5 === 0) {
// if it's not the first time you're creating row - first put the prev row into the table, then reassign it to a new table row.
if (typeof currentRow !== 'undefined') table.appendChild(currentRow);
currentRow.appendChild(item);
currentRow = document.createElement("tr");
}
}
// put the table into the body element, for example.
document.getElementsByTagName('body')[0].appendChild(table);