without - javascript foreach



Gibt es eine Möglichkeit, map() in einem Array in umgekehrter Reihenfolge mit Javascript zu verwenden? (5)

Ich möchte die map() Funktion in einem JavaScript-Array verwenden, möchte jedoch, dass sie in umgekehrter Reihenfolge ausgeführt wird.

Der Grund dafür ist, dass ich gestapelte React-Komponenten in einem Meteor-Projekt rendere und möchte, dass das Element der obersten Ebene zuerst gerendert wird, während der Rest die Bilder unten lädt.

var myArray = ['a', 'b', 'c', 'd', 'e'];
myArray.map(function (el, index, coll) {
    console.log(el + " ")
});

druckt abcde aus, aber ich wünschte, es gäbe eine mapReverse (), die edcba

Irgendwelche Vorschläge?

https://ffff65535.com


Das Array wird überhaupt nicht mutiert. Hier ist eine einzeilige O (n) -Lösung, die ich mir ausgedacht habe:

myArray.map((val, index) => myArray[myArray.length - 1 - index]);

Eine andere Lösung könnte sein:

const reverseArray = (arr) => arr.map((_, idx, arr) => arr[arr.length - 1 - idx ]);

Grundsätzlich arbeiten Sie mit den Array-Indizes


Mit benannter Rückruffunktion

const items = [1, 2, 3]; 
const reversedItems = items.map(function iterateItems(item) {
  return item; // or any logic you want to perform
}).reverse();

Kurzschrift (ohne benannte Rückruffunktion) - Pfeilsyntax, ES6

const items = [1, 2, 3];
const reversedItems = items.map(item => item).reverse();

Hier ist das Ergebnis


Sie können Array.prototype.reduceRight()

var myArray = ["a", "b", "c", "d", "e"];
var res = myArray.reduceRight(function (arr, last, index, coll) {
    console.log(last, index);
    return (arr = arr.concat(last))
}, []);
console.log(res, myArray)


Wenn Sie das ursprüngliche Array nicht umkehren möchten, können Sie eine flache Kopie davon erstellen und dann das umgekehrte Array zuordnen.

myArray.slice(0).reverse().map(function(...




arrays