scripting:reference:standard_library:table:remove
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| scripting:reference:standard_library:table:remove [2025/07/15 14:53] – angelegt fritz_98 | scripting:reference:standard_library:table:remove [2025/07/15 16:00] (aktuell) – fritz_98 | ||
|---|---|---|---|
| Zeile 52: | Zeile 52: | ||
| + | Wenn du innerhalb einer Schleife numerische Einträge aus einem Table entfernen möchtest, muss diese Schleife das Table **rückwärts** durchlaufen! Das hat folgenden Grund: Wenn mit '' | ||
| - | Beispiele: Sieb des Eratosthenes, | + | Wir geben darum ein Beispiel, wie ein Table " |
| + | <code lua> | ||
| + | MaxNumber = 100 | ||
| + | -- Das Table, das zum Schluss nur noch Primzahlen enthalten soll, wird mit allen Zahlen | ||
| + | -- von 2 bis MaxNumber initialisiert | ||
| + | -- siehe auch table.insert | ||
| + | Primes = {} | ||
| + | for i = 2, MaxNumber do | ||
| + | table.insert(Primes, | ||
| + | end | ||
| + | |||
| + | PrimeIndex = 1 | ||
| + | -- So lange, bis wir am Ende der Liste ankommen... | ||
| + | while PrimeIndex < table.getn(Primes) do | ||
| + | -- ... werden alle Zahlen entfernt, die ein Vielfaches der Zahl am PrimeIndex sind | ||
| + | -- Beachte die rückwärtszählende Schleife | ||
| + | for i = table.getn(Primes), | ||
| + | -- Entferne die Zahl, wenn sie größer als die betrachtete Zahl ist und ein ganzzahliges | ||
| + | -- Vielfaches ist | ||
| + | if (Primes[i] > Primes[PrimeIndex]) and (math.mod(Primes[i], | ||
| + | table.remove(Primes, | ||
| + | end | ||
| + | end | ||
| + | PrimeIndex = PrimeIndex + 1 | ||
| + | end | ||
| + | </ | ||
| + | **Hinweis: | ||
| + | |||
| + | |||
| + | Für ein Weiteres Beispiel siehe den Artikel zu [[scripting: | ||
| ---- | ---- | ||
| Zeile 60: | Zeile 90: | ||
| * [[scripting: | * [[scripting: | ||
| + | * [[scripting: | ||
| + | * [[scripting: | ||
scripting/reference/standard_library/table/remove.1752591194.txt.gz · Zuletzt geändert: 2025/07/15 14:53 von fritz_98
