Please can someone help me to refactor the method below. The method is generating an html table from an array.
function drawHtmlTable(filters) {
var $table = $("<table style='border: 1px solid black; empty-cells: show;'></table>");
var $line = $("<tr style='border: 1px solid black;'></tr>");
var $line1 = $("<tr style='border: 1px solid black;'></tr>");
var $line2 = $("<tr style='border: 1px solid black;'></tr>");
for (var i = 0; i < 6; i++) {
var filter = filters[i];
$line.append($("<td style='border: 1px solid black;'></td>").html(filter.Label));
$line.append($("<td style='border: 1px solid black;'></td>").html(filter.Value));
$table.append($line);
}
for (var j = 6; j < 12; j++) {
var filter1 = filters[j];
$line1.append($("<td style='border: 1px solid black;'></td>").html(filter1.Label));
$line1.append($("<td style='border: 1px solid black;'></td>").html(filter1.Value));
$table.append($line1);
}
for (var k = 12; k < 18; k++) {
var filter2 = filters[k];
$line2.append($("<td style='border: 1px solid black;'></td>").html(filter2.Label));
$line2.append($("<td style='border: 1px solid black;'></td>").html(filter2.Value));
$table.append($line2);
}
$table.appendTo($("#filterContainer"));
}
I want to make the above method generic, so that the foreach loops are not written manually and the user can just enter a filters list and the table is generated with 6 columns and whatever rows needed.