Javascript: таблица времен, сделать первую ячейку пустой, пытаясь получить этот вывод - PullRequest
0 голосов
/ 27 октября 2018

Это мой код для создания таблицы с учетом ввода пользователя:

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

Я хочупервая ячейка, где в настоящее время занимает 1, должна быть пустой. Я также хочу, чтобы следующий чел l справа от начинался с 1 , и я хочу следующуюячейка под ним, чтобы также начать с 1, а затем продолжить шаблон.

Есть ли способ применить это исправление к моему текущему коду?

1 Ответ

0 голосов
/ 27 октября 2018

Вам просто нужно изменить два цикла 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>")
   }
}

Посмотри на этой скрипке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...