У меня есть массив со строками, который я хотел бы пересечь по диагонали.
Предположения:
- Каждая строка имеет одинаковую длину.
- Массивы могут быть квадратными или прямоугольными, горизонтально или вертикально.
Матрица выглядит так:
A B C D
E F G H
I J K L
Я хотел бы получить (слева направо вправо):
A
EB
IFC
JGD
KH
L
и (слева внизу справа):
I
JE
KFA
LGB
HC
D
У меня уже есть фрагмент кода, который работает 3/4 пути, но я не могу понять, что я делаю (неправильно).
//the array
var TheArray = ['ABCD','EFGH','IJKL'];
//amount of rows
var RowLength = TheArray.length;
//amount of colums
var ColumnLength = TheArray[0].length;
Код, который я разделяю по диагонали на 4 из этих циклов, чтобы получить все диагонали. Он выглядит как 2 для циклов с if, чтобы не перебирать несвязанные значения. Псевдокод выглядит примерно так:
for(loop rows){
var outputarray = [];
for(loop columns){
if(delimit for out of bound){
var temprow = TheArray[something?];
var tempvalue = temprow[something?];
outputarray.push(tempvalue);
}
}
//use values
document.getElementById("theDiv").innerHTML += outputarray.join("")+"<br>";
}
Я надеюсь, что кто-то может мне помочь.