我的学校作业似乎被困在了。
编写一个脚本,在包含> 10列的表格中打印1到999之间的素数。使用document.write()语句创建表元素和>计数器变量以创建表,使其包含10列。计数器>变量应该以初始值0开始,并且每当您的>代码识别素数并将其打印在表格单元格中时,它将递增1。一旦计数器变量>达到值10(意味着已将10个单元格添加到当前行),打印>开始新行并将变量重置为0.
我无法弄清楚表格行和计数器的错误或错误。另外,我可能已将document.write()方法放在错误的位置。目前,该表仅垂直显示。
这就是我所拥有的:
<script>
function primeNumbers(num) {
document.write('<table>');
if (num < 2)
return false;
for (var i = 2; i < num; i++) {
if (num % i == 0)
return false;
}
return true;
}
document.write('<tr>');
var counter = 0;
for (var i = 0; i < 999; i++) {
if (primeNumbers(i)) {
if (counter % 10 == 0) {
document.write('</tr><tr>');
counter = 0;
}
counter++;
document.write('<td>' + i + '</td>');
}
}
document.write('</table>');
</script>
请把我推向正确的方向,不要给我答案。我想知道我是否可以解决这个问题。
谢谢!
答案 0 :(得分:1)
您的代码中存在一些错误:
<table>
开启者在函数内部,实际上它开了1000次。%
),只需与10进行比较。</tr>
primeNumbers
名称错误,最好是致电isPrime
以下是代码:
function isPrime(num) {
if (num < 2) return false;
for (var i = 2; i < num; i++) {
if (num % i == 0) return false;
}
return true;
}
document.write("<table><tr>");
var counter = 0;
for (var i = 0; i < 999; i++) {
if (isPrime(i)) {
if (counter == 10) {
document.write('</tr><tr>');
counter = 0;
}
counter++;
document.write('<td>' + i + '</td>');
}
}
document.write('</tr></table>');
这是小提琴工作(我不能在这里使用document.write,但你明白了)http://jsfiddle.net/bortao/D2bzk/
答案 1 :(得分:-1)
试试这个:http://jsfiddle.net/ezn7f/
<script>
function primeNumbers(num) {
if (num < 2)
return false;
for (var i = 2; i < num; i++) {
if (num % i == 0)
return false;
}
return true;
}
document.write('<table><tr>');
var counter = 0;
for (var i = 0; i < 999; i++) {
if (primeNumbers(i)) {
if (counter % 10 == 0) {
document.write('</tr><tr>');
counter = 0;
}
counter++;
document.write('<td>' + i + '</td>');
}
}
document.write('</table>');
</script>
我想知道这是不是你要找的东西。我的代码没有太大变化。