Hi!
Ich sehe, es geht euch darum, dass die Rotationslösung nicht generell besser ist. Das habe ich ja auch nie behauptet. Man muss natürlich abwägen, was die Anforderungen sind.
In erster Linie war sie ja nicht schlecht. Die Idee hat was. Du solltest dich aber auch von Ideen trennen können, die sich dann doch nicht mehr als so ideal erweisen. Und das ergab sich, als neue Anforderungen hinzukamen, die nur mit mehr Aufwand zu lösen sind und noch weitere Nachteile mit sich bringen. Bei der herkömmlichen Variante ist das jedoch alles schon drin und muss bei Erweiterungen nicht angefasst werden.
Natürlich kann niemand in die Zukunft schauen und wissen, was sonst noch so für Anforderungen kommen. Wenn sich dann die Zählervariante als ungünstig erweist, muss man dann eben umdisponieren. Ob die Rotationsvariante ebenfalls betroffen wäre, ist auch ungewiss. Aber wenn selbst einfach vorhersehbare Fälle, wie Hinzufügen und Umsortieren mit Mehraufwand verbunden sind, ...
Ich wollte aber beim konkreten Problem im OP helfen, keine Grundastzdiskussion über Programmiertechniken im Allgemeinen führen.
Ja, das will fast jeder, aber (suboptimale) Lösungen muss man auch diskutieren dürfen.
Der Programmcode (bzw. das JavaScript) wird nur 1x geladen,
Genau, auch das spricht für mine Lösung. Nach einmaliger Zuordnung muss man keine Berechnungen mit einem Zähler mehr durchführen.
Ein bisschen Zählerberechnung stelle ich mir wesentlich einfacher vor, als Array-Elemente umherzuschieben. Die Elemente selbst werden zwar am selben Speicherplatz bleiben, aber die Referenz darauf muss in der Array-Verwaltung umsortiert werden, inklusive Nachrutschen aller anderen Referenzen.
Lo!