Как заполнить таблицу в JavaScript цифрами? - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть задача создать таблицу, используя только метод document.write.Я это сделал.Но сложность в том, чтобы заполнить таблицу цифрами.Я не могу понять закономерность!

Это пример:

1 3 3 3 3 
2 1 3 3 3 
2 2 1 3 3 
2 2 2 1 3 
2 2 2 2 1 

Это мой код:

function numbermatrix(rows, cols) {
document.write('<table>');
for (i=0; i < rows; i++) {
    document.write('<tr>');
    for (j=0; j < cols; j++) {
        document.write('<td>' + fill() + '</td>');
    }
document.write('</tr>');
}
document.write('</table>');

function fill() {
    // don't know that is the algorithm
}
}
document.write (numbermatrix(5, 5));

Кто-нибудь может помочь заполнить таблицу этими фьюгурами

Ответы [ 4 ]

0 голосов
/ 23 сентября 2018

А вот и мой.Я знаю, что опоздал;

function numbermatrix(rows, cols) {
  let table = "<table>";
  for (let i = 0; i < rows; i++) {
    table += "<tr>";
    for (let j = 0; j < cols; j++) {
      table += "<td>";
      table += (i == j) ? 1 : ((i > j) ? 2 : 3)
      table += "</td>";
    }
    table += "</tr>";
  }
  return table;
}
document.write(numbermatrix(5, 6));
table td{padding:1em; border:1px solid }
0 голосов
/ 23 сентября 2018

Вот логика для fill функции

function numbermatrix(rows, cols) {
  document.write('<table>');
  for (i = 0; i < rows; i++) {
    document.write('<tr>');
    for (j = 0; j < cols; j++) {
      document.write('<td>' + fill(i, j) + '</td>');
    }
    document.write('</tr>');
  }
  document.write('</table>');

  function fill(i, j) {
    if(i === j) return 1; // for diagonal
    else if (i > j) return 2; // for values below diagonal
    else return 3; // for values above diagonal
  }
}
numbermatrix(5, 5);
0 голосов
/ 23 сентября 2018

Вы также можете использовать 3 простых цикла for для генерации чисел:

function numbermatrix(rows, cols) {
  document.write('<table>');
  for (let i = 0; i < rows; i++) {
    document.write('<tr>');
      for (let k = 0; k < i; k++) { // print 2s up to i
        document.write('<td>' + 2 + '&nbsp;&nbsp;</td>');
      }
      
      document.write('<td>' + 1 + '&nbsp;&nbsp;</td>'); // print 1
      
      for (let k = i; k < cols-1; k++) { // print 3s up to the end
        document.write('<td>' + 3 + '&nbsp;&nbsp;</td>');
      }
      
    document.write('</tr>');
  }
  document.write('</table>');
}

numbermatrix(6, 6);
0 голосов
/ 23 сентября 2018

Для матрицы вы можете сгенерировать вложенный массив и заполнить проверкой индексов.

function numbermatrix(m, n) {
    return Array.from(
        { length: m },
        (_, i) => Array.from(
            { length: n },
            (_, j) => i === j ? 1 : i > j ? 2 : 3)
    );
}

console.log(numbermatrix(5, 5).map(a => a.join(' ')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...