Javascript:Times表,将第一个单元格留空,尝试获取此输出

时间:2018-10-26 23:05:53

标签: javascript for-loop

这是我的代码,用于在给定用户输入的情况下创建表:

const err = "the valid input is a number between 5 and 20, please refresh your page to start again";

const q1 = "Enter a value";
var user = prompt(q1);
var x = parseInt(user, 10);

if (Number.isInteger(x) && x >= 5) {
  x = x;
  if (x >= 20) {
    document.getElementById("rer").innerHTML = err;
  }
} else {
  document.getElementById("rer").innerHTML = err;
}

function timestable(x) {
  var r, s;
  document.write("<table id = 'table' border = 1")

  for (r = 1; r <= x; r++) {
    document.write("<tr>")
    for (s = 1; s <= x; s++) {

      document.write("<td>" + r * s + "</td>")

    }
    document.write("</tr>")
  }
  document.write("</table>")
}
console.log(timestable(x));

这是输入10时的输出:

example of output when user input 10

我希望第一个单元格当前为空白。我还希望右侧的 next cel l从开始1 ,我希望它下面的下一个单元格也从1开始,然后继续模式。

有什么办法可以将此修复程序应用于当前代码?

1 个答案:

答案 0 :(得分:1)

您只需要更改两个for循环以0开头,并更改在单元格中打印的内容:

for (r = 0; r <= x; r++) {
   document.write("<tr>")
   for (s = 0; s <= x; s++) {
     if (s === 0 && r === 0) {
        product = '';
     } else if (s === 0) {
        product = r;
     } else if (r === 0) {
        product = s;
     } else {
        product = r * s;
     }
     document.write("<td>" + product + "</td>")
   }
}

查看on this fiddle