Проблема в том, что вы пытаетесь напрямую добавлять числа и флаги к элементам DOM, но DOM не позволяет вам это сделать. Вы должны поместить их в текстовые узлы. Так, например:
td1.appendChild(document.createTextNode(ris[i]));
td2.appendChild(document.createTextNode(halfed[i]));
Но проще, если вы позволите браузеру сделать это за вас, назначив textContent
:
td1.textContent = ris[i];
td2.textContent = halfed[i];
Live Пример:
function compile(){
var count = 5;
var ris = [3, 6, 3, 3, 6];
var halfed = [true, false, true, true, false];
for (var i=0; i<count; i++) {
var tra = document.createElement("tr");
var td1 = document.createElement("td");
var td2 = document.createElement("td");
td1.textContent = ris[i];
td2.textContent = halfed[i];
tra.appendChild(td1);
tra.appendChild(td2);
document.getElementById("a").appendChild(tra);
}
}
<button type="button" onclick="compile()">cliccami</button>
<table id="a"></table>
Однако есть еще много , и множество других способов сделать то, что вы там делаете. MDN - одно из лучших мест, где можно узнать о DOM и о JavaScript.