我正在制作一个乘法表,它从用户那里获取输入并构建一个n×n表。但是,对于我拥有的脚本,它总是显示比预期更少的行和列。我在这里缺少什么?
JS:
function happy(rows, cols){
var hcode = '';
w=window.open();
//w.document.write("here are " + rows + cols)
w.document.write("<table border='1'><tr> </td>");
for (j=1; j<cols; j++){
w.document.write("<tr>");
w.document.write("<td bgcolor='plum'>"+ j +"</td>");
//w.document.write("<tr>");
for (i=2; i<rows; i++){
w.document.write("<td>" + j*i + "</td>");
}
w.document.write("</tr>")
}
w.document.write("</table>");
}
答案 0 :(得分:3)
如果您对结果感到惊讶,则会出现一个错误的错误。如果你对结果并不感到惊讶,那就是设计。
你可以在纸上自己尝试一下。
假设你想数到3,你从1开始。
没有第三个号码。因为您已使用支票number<3
停止了循环。
要解决此问题,请检查数字是否小于或等于3:
for (j=1; j<=cols; j++){ ...
答案 1 :(得分:1)
javascript中的数组从0
开始,你的循环也应该从0
开始
答案 2 :(得分:1)
使用j&lt; = cols。当您使用值j进行乘法时,j = 0将得到结果为0。
答案 3 :(得分:1)
for (j = 1; j <= cols; j++)
和for (i = 2; i <= rows; i++)
由于您的情况i < cols
,您的循环会提早结束。 :)