Array rückwärts ausgeben JavaScript ohne Array.reverse?
Hallo Leute,
es gibt sicher eine Möglichkeit ein Array rückwärts, aber ohne arr.reverse() zurückzugeben. Wie aber lautet dieser Code?
2 Antworten
Einfach ein neues Array erstellen, in das du die Elemente der Reihe nach vorne einfügst. Dadurch ist die Reihenfolge vertauscht. Und dieses neue Array dann zurückgeben. Ich würde es so machen:
arr.reduce((a,b)=> [b].concat(a),[]);
oder (länger, aber effizienter):
arr.reduce((a,b)=> {a.unshift(b); return a},[]);
Definitiv nicht, nein. Hier wird ja für jedes Element ein neues Array erstellt. Das ist alles andere als effizient, aber halt schön kurz. Um das effizient zu machen müsste man anstatt
[b].concat(a)
folgendes schreiben:
{a.unshift(b); return a;}
Wer Effizienz will sollte aber generell Array.reduce meiden und eine for-Schleife verwenden.
Wenn du dir die Arbeit machen willst und den Code selber schreiben willst, statt das zu nehmen, was es bereits gibt, dann kannst du den Array mit einer for-Schleife Rückwärts durchgehen und ein neues Array erzeugen. Ich würde davon aber abraten und lieber die vorhandene Funktion nehmen
Danke
Ich muss das aber selbst coden, da das meine Lehrer von mir verlangen xD
Ob das bei großen Arrays effizient ist? 🤔