Array rückwärts ausgeben JavaScript ohne Array.reverse?

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},[]);
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
fluffiknuffi2  04.04.2022, 09:08

Ob das bei großen Arrays effizient ist? 🤔

0
MrAmazing2  04.04.2022, 15:05
@fluffiknuffi2

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.

1

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

Nathan560 
Fragesteller
 04.04.2022, 08:56

Danke
Ich muss das aber selbst coden, da das meine Lehrer von mir verlangen xD

0