var eredmeny=[];
Előre azt mondtad, hogy az eredmény 12 elemű tömb lesz, de nem írtál bele annyi elemet, így a maradék undefined értéket vett fel. A new Array() helyett inkább a sokkal tömörebb [] szintaktikát használd.
for(i=0;i<12;i++)
{
document.getElementById("tomb").innerHTML = tomb;
}
Itt a for ciklusnak semmi értelme sincsen.
Szűrésre és egyéb tömbbel kapcsolatos műveletekre érdemes használni a JS filter/reduce/map feature-jeit, ha lehetőséged van rá, mert sokkal tömörebb és átláthatóbb kódot eredményez:
var eredmeny = tomb.filter(function(e) {
return e % 3 === 0;
});
Csak akkor használd a == és != operátorokat, ha szükséges a konverzió, minden egyéb esetben a === és !== operátorokat használd.
Legyél konzekvens a központozásban, tedd ki mindig a space-eket az operátorok elé és mögé, valamint a sorok elejére a megfelelő behúzást.
for(n=0;n<12;n++)
if(tomb[n]%3==0)
{
eredmeny[j]=tomb[n];
j++;
}
document.getElementById("three").innerHTML = eredmeny;
}
És kerüld az ilyen eseteket, mert első ránézésre azt hinné az ember, hogy az innerHTML módosítása is a for cikluson belül történik, ezért tedd ki a kapcsos zárójeleket:
for (n=0; n < 12; n++)
{
if (tomb[n] % 3 === 0)
{
eredmeny[j] = tomb[n];
j++;
}
}
document.getElementById("three").innerHTML = eredmeny;
Vagy a JavaScript szokások szerint írva:
for (n=0; n < 12; n++) {
if (tomb[n] % 3 === 0) {
eredmeny[j] = tomb[n];
j++;
}
}
document.getElementById("three").innerHTML = eredmeny;