Menu
Coddy logo textTech

Benutzerdefiniertes Sortieren mit Funktionen

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

Während table.sort() hervorragend für einfache Listen von Zahlen oder Strings funktioniert, sind Daten aus der Praxis oft komplexer. Möglicherweise haben Sie eine Tabelle mit Spielerdatensätzen, Inventargegenständen oder Spielergebnissen, bei denen jeder Eintrag selbst eine Tabelle mit mehreren Feldern ist.

Um diese komplexen Strukturen zu sortieren, müssen Sie table.sort() genau sagen, wie zwei Einträge verglichen werden sollen. Hier werden benutzerdefinierte Vergleichsfunktionen unverzichtbar. 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 von Spielerdatensätzen:

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 wird die Tabelle players in absteigender Reihenfolge nach score sortiert, wobei Bob an erster Stelle steht (200), Charlie an zweiter (175) und Alice an dritter (150). Die Vergleichsfunktion greift auf das Feld score jeder player-Tabelle zu, um deren Reihenfolge zu bestimmen.

Sie können nach jedem beliebigen Feld sortieren – Namen alphabetisch, Level numerisch oder sogar mehrere Kriterien kombinieren.

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