JavaScript
const transpose = (matrix) => matrix[0].map((col, i) => matrix.map((row) => row[i]))
const transpose = (matrix) => matrix[0].map((col, c) => matrix.map((row, r) => matrix[r][c]))
const transpose = (matrix) => matrix.reduce((prev, next) => next.map((item, i) => (prev[i] || []).concat(next[i])), [])
TypeScript
const transpose = <T,>(matrix: T[][]): T[][] => matrix[0].map((col, i) => matrix.map((row) => row[i]))
const transpose = <T,>(matrix: T[][]): T[][] => matrix[0].map((col, c) => matrix.map((row, r) => matrix[r][c]))
const transpose = <T,>(matrix: T[][]): T[][] => (
matrix.reduce((prev, next) => next.map((item, i) => (prev[i] || []).concat(next[i])), [] as T[][])
)
Examples
transpose([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
])