Сумма по каждому столбику матрицы

264
01 марта 2017, 21:12

Генерирую матрицу, нахожу сумму каждой строки. Как найти сумму по каждому столбику?

function matrix(m, n) { 
  var table = document.createDocumentFragment(); 
 
  var arr = []; 
 
  for (var i = 0; i < m; i++) { 
    var tr = document.createElement('tr'); 
    arr[i] = []; 
    var summM = 0; 
 
    for (var j = 0; j < n; j++) { 
      var td = document.createElement('td'); 
      td.id = "unicId-" + i + "-" + j; 
      td.innerHTML = arr[i][j] = getRandom(); 
      tr.appendChild(td); 
      summM += arr[i][j]; //сумма каждой строки 
    } 
 
    tr.setAttribute("data-summ", " → Cуммa = " + summM); 
    table.appendChild(tr); 
  } 
  document.getElementById('matrix').appendChild(table); 
 
  function getRandom() { 
    var min = 1; 
    var max = 4; 
    return Math.floor(Math.random() * (max - min)) + min; 
  } 
} 
 
onload = function() { 
  matrix(4, 4); 
}
tr { 
  position: relative; 
} 
 
tr:after { 
  content: attr(data-summ); 
} 
 
td { 
  border: 1px solid lightgray; 
  padding: 5px; 
}
<section id="matrix"></section>

Answer 1

function matrix(m, n) { 
  var table = document.createDocumentFragment(); 
 
  var arr = []; 
  var colSums = []; 
  for (var j = 0; j < n; j++) { 
    colSums[j] = 0; 
  } 
 
  for (var i = 0; i < m; i++) { 
    var tr = document.createElement('tr'); 
    arr[i] = []; 
    var summM = 0; 
 
    for (var j = 0; j < n; j++) { 
      var td = document.createElement('td'); 
      td.id = "unicId-" + i + "-" + j; 
      td.innerHTML = arr[i][j] = getRandom(); 
      tr.appendChild(td); 
      summM += arr[i][j]; //сумма каждой строки 
      colSums[j] += arr[i][j]; 
    } 
 
    tr.setAttribute("data-summ", " → Cуммa = " + summM); 
    table.appendChild(tr); 
  } 
 
  //console.log(colSums); 
  tr = document.createElement('tr'); 
  for (var j = 0; j < n; j++) { 
    td = document.createElement('td'); 
    td.innerHTML = "<b>" + colSums[j] + "</b>"; 
    tr.appendChild(td); 
  } 
  table.appendChild(tr); 
   
  document.getElementById('matrix').appendChild(table); 
 
  function getRandom() { 
    var min = 1; 
    var max = 4; 
    return Math.floor(Math.random() * (max - min)) + min; 
  } 
} 
 
matrix(4, 4);
tr { 
  position: relative; 
} 
 
tr:after { 
  content: attr(data-summ); 
} 
 
td { 
  border: 1px solid lightgray; 
  padding: 5px; 
}
<section id="matrix"></section>

READ ALSO
Как получать содержимое тегов xml через XPath в IE

Как получать содержимое тегов xml через XPath в IE

Ломается с ошибкой: Объект не поддерживает свойство или метод "setProperty"Что я делаю не так?

246
Как проверить началось ли видео или нет?

Как проверить началось ли видео или нет?

Имеется блокwrapper_group, в нем iframe (youtube)

245
Свойство clip-path через свой path

Свойство clip-path через свой path

Добрый день уважаемыеПодскажите, пожалуйста как запускать данное свойство по лично нарисованному пути? (Почему то не выходит, хотя на простых...

214
Как правильно создать в БД таблицу, которая будет отвечать за новости?

Как правильно создать в БД таблицу, которая будет отвечать за новости?

Допустим, на данный момент я хочу вывести картинку, заголовок, вступительный текст и полный текст (при открытии страницы с новостями)Само...

201