La transposition d'une 2D-tableau en JavaScript

J'ai un tableau de tableaux, quelque chose comme:

[
    [1,2,3],
    [1,2,3],
    [1,2,3],
]

Je tiens à le transposer pour obtenir le tableau suivant:

[
    [1,1,1],
    [2,2,2],
    [3,3,3],
]

Il n'est pas difficile de le faire par programmation à l'aide de boucles:

function transposeArray(array, arrayLength){
    var newArray = [];
    for(var i = 0; i < array.length; i++){
        newArray.push([]);
    };

    for(var i = 0; i < array.length; i++){
        for(var j = 0; j < arrayLength; j++){
            newArray[j].push(array[i][j]);
        };
    };

    return newArray;
}

Ceci, cependant, semble encombrant, et je me sens comme il devrait y avoir un moyen plus facile de le faire. Qui est là?

  • Pouvez-vous garantir que les deux dimensions sera toujours la même? 1x1, 2x2, 3x3, etc. Qu'est-ce que le arrayLength paramètre utilisé pour exactement? Pour vous assurer de ne pas aller au-delà d'un certain nombre d'éléments dans le tableau?
  • Cela n'a rien à faire avec JQuery, j'ai changé le titre.
  • Check this out: stackoverflow.com/questions/4492678/.... Ce que vous faites, c'est de transposer une matrice
  • Oui, la transposition. L'inversion serait complètement différente et je ne suis pas intéressé par elle. Pour l'instant.
  • Le haut à gauche à en bas à droite de la diagonale est inchangé, il y a donc une optimisation de l'occasion.
InformationsquelleAutor ckersch | 2013-07-02