Trocar linhas com colunas (transposição) de uma matriz em javascript [duplicado]

Esta pergunta já tem uma resposta aqui:

Transpondo uma matriz 2D em JavaScript 17 respostas

Por exemplo, eu tenho uma matriz como esta:

|1 2 3|    
|4 5 6|
|7 8 9|

e eu preciso converter em uma matriz como esta:

|1 4 7|    
|2 5 8|
|3 6 9|

Qual é a melhor e melhor maneira de atingir esse objetivo?