Heim >Web-Frontend >js-Tutorial >Wie kann ich ein 2D-Array in JavaScript effizient transponieren?

Wie kann ich ein 2D-Array in JavaScript effizient transponieren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-15 12:42:12672Durchsuche

How Can I Efficiently Transpose a 2D Array in JavaScript?

Transponieren eines 2D-Arrays mit der Condensed Syntax von JavaScript

Das Transponieren eines 2D-Arrays beinhaltet die Konvertierung von Zeilen in Spalten und umgekehrt. Während es grundlegende schleifenbasierte Lösungen gibt, bietet JavaScript einen prägnanteren Ansatz, der funktionale Programmiertechniken nutzt.

Betrachten Sie das bereitgestellte 2D-Array:

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

Die prägnante Transposition mit map() kann sein ausgedrückt als:

output = array[0].map((_, colIndex) => array.map(row => row[colIndex]));

Aufschlüsselung der Code:

  1. array[0].map: Iteriert über die erste Zeile des ursprünglichen Arrays.
  2. (_, colIndex): Während die äußere Karte leere Elemente durchläuft, wird der Platzhalter für den Unterstrich (_) anstelle eines tatsächlichen Werts verwendet. colIndex stellt den Spaltenindex dar.
  3. array.map: Für jeden Spaltenindex iteriert diese innere Karte durch das ursprüngliche Array.
  4. row => row[colIndex]: Extrahiert das Element in der angegebenen Spalte für jede Zeile.

Das Ergebnis ist ein neues 2D-Array, bei dem jede Zeile im ursprünglichen Array zu einer Spalte im transponierten Array geworden ist :

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

Das obige ist der detaillierte Inhalt vonWie kann ich ein 2D-Array in JavaScript effizient transponieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn