Transposição em espiral

Achate um array bidimensional seguindo uma ordem espiral no sentido horário. Comece pelo valor no canto superior esquerdo e avance primeiro para a direita.

Exemplos

spiralTransposition({
  {7, 2},
  {5, 0}
})

➞ {7, 2, 0, 5}

spiralTransposition({
  {1, 2, 3},
  {4, 5, 6},
  {7, 8, 9}
})

➞ {1, 2, 3, 6, 9, 8, 7, 4, 5}

spiralTransposition({
  {1, 1, 1},
  {4, 5, 2},
  {3, 3, 2}
})

➞ {1, 1, 1, 2, 2, 3, 3, 4, 5}

Observações

Se você não entende as instruções, escreva o exemplo do array 3x3 em uma folha de papel e acompanhe o resultado passo a passo.