Хотя кажется, что должен быть более простой способ, DOM не понимает видимый порядок, поэтому вам, вероятно, придется транспонировать значения вручную, например:
// Populates domOrder from DOM (Note: These example selectors are fragile)
const domOrder = [], visibleOrder = [];
// Uses spread operator to get an array of tables
const inlineTables = [...document.querySelectorAll("table")]
.filter(table => table.style.display == "inline-block")
.forEach(table => {
// Gets rows
[...table.children]
// I'm not certain whether splitting on newlines is always reliable
.forEach(tr => domOrder.push(tr.innerText.split(/\n/g)));
});
// Populates visibleOrder by transposing values from domOrder
const rowCount = domOrder.length;
const colCount = domOrder[0].length;
domOrder[0].forEach( (col, colNum) => {
// Adds a row to visibleOrder
visibleOrder[colNum] = [];
// Transposes the values
domOrder.forEach( (row, rowNum) => {
visibleOrder[colNum][rowNum] = domOrder[rowNum][colNum];
});
});
console.log(visibleOrder);
<table style="display: inline-block">
<tr><td>1</td></tr>
<tr><td>2</td></tr>
</table>
<table style="display: inline-block">
<tr><td>3</td></tr>
<tr><td>4</td></tr>
</table>
<table style="display: inline-block">
<tr><td>5</td></tr>
<tr><td>6</td></tr>
</table>
А вот более надежный пример преобразования матрицы .