Пусть у нас дана HTML таблица. Достаточно легко получить ряды этой таблицы в виде двухмерного массива. Однако, получение колонок, а тем более ее диагоналей представляет собой сложности. Давайте решим эту задачу!
Исходники кода
<table id="table"></table>
td {
padding: 10px;
border: 1px solid black;
text-align: center;
}
var rowsNum = 5;
var colsNum = 6;
var arr = [];
var k = 1;
for (var i = 0; i < rowsNum; i++) {
arr[i] = [];
for (var j = 0; j < colsNum; j++) {
arr[i][j] = k;
k++;
}
}
console.log(arr);
createTable(arr);
function createTable(arr) {
var table = document.querySelector('#table');
var k = 1;
for (var i = 0; i < arr.length; i++) {
var tr = document.createElement('tr');
for (var j = 0; j < arr[i].length; j++) {
var td = document.createElement('td');
td.innerHTML = k++;
tr.appendChild(td);
}
table.appendChild(tr);
}
}
/*
var result = [];
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i].length; j++) {
if (result[j] === undefined) {
result[j] = [];
}
result[j][i] = arr[i][j];
}
}
console.log(result);
*/
var result = [];
for (var i = 0; i < arr.length; i++) {
for (var j = arr[i].length - 1; j >= 0; j--) {
if (result[i] === undefined) {
result[i] = [];
}
result[i].push(arr[i][j]);
}
}
arr = result;
console.log(arr);
var result = [];
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i].length; j++) {
if (result[i + j] === undefined) {
result[i + j] = [];
}
result[i + j].push(arr[i][j]);
}
}
console.log(result);