Menu
CoddyTech

Eigene Sortierung mit Funktionen

Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 8 von 54.

Während table.sort() für einfache Listen mit Zahlen oder Zeichenfolgen hervorragend funktioniert, sind Daten aus der Praxis oft komplexer. Vielleicht hast du eine Tabelle mit Spielerdatensätzen, Inventargegenständen oder Spielergebnissen, in der jeder Eintrag selbst eine Tabelle mit mehreren Feldern ist.

Um diese komplexen Strukturen zu sortieren, musst du table.sort() genau mitteilen, wie zwei Einträge verglichen werden sollen. Hier sind benutzerdefinierte Vergleichsfunktionen unerlässlich. Eine Vergleichsfunktion nimmt zwei Elemente entgegen und gibt true zurück, wenn das erste in der sortierten Reihenfolge vor dem zweiten stehen soll.

Hier ist ein Beispiel mit einer Tabelle mit Spielerdaten:

local players = {
    {name = "Alice", score = 150},
    {name = "Bob", score = 200},
    {name = "Charlie", score = 175}
}

table.sort(players, function(a, b)
    return a.score > b.score
end)

Nach dem Sortieren ist die Spielertabelle absteigend nach Punktzahl geordnet: Bob steht an erster Stelle (200), Charlie an zweiter (175) und Alice an dritter Stelle (150). Die Vergleichsfunktion greift auf das Feld score jeder Spielertabelle zu, um ihre Reihenfolge zu bestimmen.

Du kannst nach jedem beliebigen Feld sortieren: Namen alphabetisch, Level numerisch oder auch nach mehreren Kriterien gleichzeitig.

Probier es selbst

Diese Lektion enthält keine Programmieraufgabe.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Programmablauf

Übe selbstständig: Online-Lua-Compiler