Tach!
while (prisoners.length >= k) { i = (i - 1 + k) % prisoners.length; // index of next element to be removed prisoners.splice(i, 1); // remove element of index i from array }
Auch hier erklären die beiden Kommentare nichts, was nicht bereits in der Dokumentation zu splice() zu finden ist.
Doch, der erste sagt, dass ich jenes Element entfernen möchte.
Ja, aber das ergibt sich aus dem Code selbst, ohne dass man sich die Formel genauer anschauen muss. Wenn in der zweiten Zeile das Element i entfernt wird und in der Zeile darüber eine Zuweisung an i erfolgt, dann ist es logisch, dass diese Zeile das Element ermittelt, das entfernt werden soll. Ok, meine Formulierung war nicht ganz präzise, aber das wollte ich ausdrücken: nicht das Offensichtliche kommentieren.
Warum es das richtige ist, sagt der Kommentar allerdings nicht.
Eben.
Aber das finde ich ja grad das Clevere im Vergleich zu meiner Lösung. Ich hatte diesen Gedanken auch, ihn aber mit „funktioniert sowieso nicht“ nicht einmal getestet.
Ich hatte da auch die Überlegung, ob es da nicht eine Formel oder andere Gesetzmäßigkeit gibt. Mit Rechenpower in Form einer Schleife ist das ja aus mathematischer Sicht nur mäßig spannend.
dedlfix.