Heim >Web-Frontend >js-Tutorial >Wie sortiere ich ein 2D-Array nach Spaltenwert in JavaScript?

Wie sortiere ich ein 2D-Array nach Spaltenwert in JavaScript?

Barbara Streisand
Barbara StreisandOriginal
2024-11-15 19:11:05325Durchsuche

How to Sort a 2D Array by Column Value in JavaScript?

Sortieren von 2D-Arrays in JavaScript

Wie kann ich ein 2D-Array in JavaScript nach Spaltenwert sortieren?

Angenommen, wir haben ein 2D-Array mit dem folgenden Format:

[[12, "AAA"], [58, "BBB"], [28, "CCC"], [18, "DDD"]]

Wir möchten dieses Array nach der ersten Spalte sortieren, was zu Folgendem führt:

[[12, "AAA"], [18, "DDD"], [28, "CCC"], [58, "BBB"]]

Lösung:

Das Sortieren eines 2D-Arrays nach Spaltenwert ist in JavaScript unkompliziert. So können Sie es machen:

var a = [[12, 'AAA'], [58, 'BBB'], [28, 'CCC'],[18, 'DDD']];

a.sort(sortFunction);

function sortFunction(a, b) {
    if (a[0] === b[0]) {
        return 0;
    }
    else {
        return (a[0] < b[0]) ? -1 : 1;
    }
}

Diese Funktion verwendet die folgenden Regeln:

  • Wenn die Elemente in der ersten Spalte gleich sind, geben Sie 0 zurück.
  • Wenn das Element in der ersten Spalte des ersten Arrays kleiner als das des zweiten ist, geben Sie -1 zurück.
  • Wenn das Element in der ersten Spalte des ersten Arrays größer als das des zweiten ist, geben Sie zurück 1.

Um das Array nach der zweiten Spalte zu sortieren, ersetzen Sie einfach a[0] durch a[1] in der Vergleichsfunktion.

a.sort(compareSecondColumn);

function compareSecondColumn(a, b) {
    if (a[1] === b[1]) {
        return 0;
    }
    else {
        return (a[1] < b[1]) ? -1 : 1;
    }
}

Weitere Informationen finden Sie in der JavaScript-Dokumentation Weitere Informationen zur Sortierfunktion.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein 2D-Array nach Spaltenwert in JavaScript?. 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