Einführung
In diesem Lab werden wir die rearg-Funktion in JavaScript erkunden, mit der wir die Reihenfolge der an eine Funktion übergebenen Argumente basierend auf angegebenen Indizes umordnen können. Wir werden lernen, wie wir die Array.prototype.map()-Methode und den Spread-Operator verwenden, um die Argumente zu transformieren und die ursprüngliche Funktion mit den umgeordneten Argumenten aufzurufen. Am Ende dieses Labs werden Sie gut verstehen, wie Sie die rearg-Funktion verwenden, um Funktionsargumente in JavaScript zu manipulieren.
Wie man in JavaScript Funktionsargumente neu anordnet
Um in JavaScript Funktionsargumente neu anzuordnen, kann man die rearg()-Funktion verwenden. Zunächst erstelle man eine Funktion, die die bereitgestellte Funktion mit ihren Argumenten aufruft, wobei die Argumente gemäß den angegebenen Indizes angeordnet sind. Man kann Array.prototype.map() verwenden, um die Argumente basierend auf indexes neu zu ordnen. Dann verwendet man den Spread-Operator (...), um die transformierten Argumente an fn zu übergeben.
Hier ist ein Beispiel, wie man die rearg()-Funktion verwendet:
const rearg =
(fn, indexes) =>
(...args) =>
fn(...indexes.map((i) => args[i]));
In diesem Beispiel verwenden wir rearg(), um eine neue Funktion zu erstellen, die die Argumente einer anderen Funktion neu anordnet.
var rearged = rearg(
function (a, b, c) {
return [a, b, c];
},
[2, 0, 1]
);
rearged("b", "c", "a"); // ['a', 'b', 'c']
In dem obigen Code erstellen wir eine neue Funktion rearged, die die Argumente der Funktion function(a, b, c) { return [a, b, c]; } neu anordnet. Der indexes-Parameter gibt die Reihenfolge an, in der die Argumente neu angeordnet werden sollen. In diesem Fall möchten wir, dass das dritte Argument zuerst kommt, das erste Argument zweitens und das zweite Argument drittens kommt. Wenn wir rearged('b', 'c', 'a') aufrufen, wird ['a', 'b', 'c'] zurückgegeben, was das Ergebnis ist, wenn man die ursprüngliche Funktion mit den neu angeordneten Argumenten aufruft.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Rearrange Function Arguments" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.