
Wenn es um Code in JavaScript geht, haben Entwickler die Reduction-Funktion als eines der am schwierigsten zu knackenden Konzepte eingestuft. Laut Wikipedia hat Reduce mehrere Namen, nämlich. Akkumulieren, Falten, Komprimieren und Aggregieren. Diese Namen geben deutlich die Bedeutung und Funktionsweise der Reduktionsfunktion an. Die Idee dahinter ist, eine Struktur in einen einzigen Wert zu zerlegen. Reduce kann daher als eine Funktion definiert werden, die eine Liste in einen beliebigen Datentyp konvertiert.
Zum Beispiel können Sie ein Array [5,4,3,2,1] auf den Wert 15 reduzieren, indem Sie es einfach hinzufügen.Die Funktion "Reduzieren" hält Entwickler davon ab, "Schleife" zu verwenden, um eine Liste in einen einzigen Wert zu falten.
In diesem Blog erfahren Sie, wie Sie bekannte Funktionen mithilfe von Reduce implementieren, wie dies bereits von Entwicklern in
Top-Softwareentwicklungsunternehmen durchgeführt wurde .
Ich habe 10 JavaScript-Hilfsprogrammfunktionen aufgelistet, die mit der Reduktionsfunktion neu erstellt wurden. Schauen Sie sich also die folgenden Funktionen an:Verwendete Parameter
array (um eine Liste von Elementen zu transformieren), transform Function (ist eine Funktion, die für jedes Element verwendet wird)
Arbeiten
Mit der angegebenen transformFunction wird jedes Element im angegebenen Array transformiert und gibt ein neues Array von Elementen zurück.
Wie implementieren?
const map = (transformFunction, array1) => array1.reduce((newArray1, xyz) => { newArray1.push(transformFunction(xyz)); return newArray1; }, [] );
Anwendungsfall:
const double = (x) => x * 2; const reverseString = (string) => string .split('') .reverse() .join(''); map(double, [200, 300, 400]); Output: [400, 600, 800] map(reverseString, ['Hello Alka', 'I love cooking']);
Verwendete Parameter
Array (Liste der zu filternden Elemente / Werte), Prädikat (Funktion, die einen wahren oder falschen Wert zurückgibt)
Arbeiten
Ablehnen hat ein entgegengesetztes Verhalten zu filtern, ist aber dasselbe. Wenn das Prädikat einen falschen Wert zurückgibt, wird nur das Element zum neuen Array hinzugefügt. Andernfalls wird das Element aus dem neuen Array ausgeschlossen.
Wie implementieren?
const reject = (predicate, arr3) => arr3.reduce((newArray, val3) => { if (predicate(val3) === false) { newArray.push(val3); } return newArray; }, [] );
Anwendungsfall:
const isEven = (z) => z % 2 === 0; reject(isEven, [1, 6, 4, 3]);
Verwendete Parameter
array (list of items), reducer (ist eine Funktion, die zwei Parameter erhält, dh akkumulator & aktuelles Element aus der Liste von array)
Arbeiten
Die Funktionsweise ähnelt der von "Reduzieren", es wird jedoch keine Liste aller reduzierten Werte zurückgegeben, die der einzelnen Ausgabe entsprechen.
Wie implementieren?
const scan = (reducer, initialVal, array) => { const reducedValues = []; array.reduce((acc, currentval) => { const newAcc = reducer(acc, currentval); reducedValues.push(newAcc); return newAcc; }, initialVal); return reducedValues; };
Anwendungsfall:
const add = (y, z) => y + z; const multiply = (y, z) => y * z; scan(add, 0, [1, 2, 3, 4]);
Verwendete Parameter
Array (um die Liste der Elemente zu filtern), Prädikat (ist eine Funktion, die einen falschen oder wahren Wert zurückgibt)
Arbeiten
Hier erhalten Sie ein neues Array als Ausgabe. Wenn die Prädikatfunktion den Wert true zurückgibt, wird das Element dem neuen Array hinzugefügt. Wenn jedoch false zurückgegeben wird, wird das Element aus dem neuen Array ausgeschlossen.
Wie implementieren?
const filter = (predicate, arr1) => arr1.reduce((newArray, val) => { if (predicate(val) === true) { newArray.push(val); } return newArray; }, [ ] );
Anwendungsfall:
const isEven = (y) => y % 2 === 0; filter(isEven, [3, 2, 5]);
Verwendete Parameter
Array (zu testende Listenelemente), Prädikat (Funktion, die den Wert true oder false zurückgibt)
Arbeiten
Hier gibt none den Wert true zurück, wenn predicate für jedes Element den Wert false zurückgibt. Andernfalls wird für jeden wahren Wert des Prädikats ein falscher Wert zurückgegeben.
Wie implementieren?
const none = (predicate, array) => array.reduce((acc1, val1) => !acc1 && !predicate(val1), false);
Anwendungsfall:
const isEven2 = (x) => x % 2 === 0; none(isEven2, [1, 3, 5]);
Verwendete Parameter
Array (enthält eine Liste von Elementen), Prädikat (Funktion, die den Wert false oder true zurückgibt)
Arbeiten
Es definiert die Aufteilung eines Arrays in zwei, basierend auf dem Prädikatwert. Wenn das Prädikat einen wahren Wert zurückgibt, wechselt das Element zu Liste1. Andernfalls wird es zur Liste2 gehen. Die Methode zum Aufteilen des Arrays in verschiedene Blöcke wurde von den modernen Programmierern verwendet, die mit den führenden Softwareentwicklungsunternehmen in Verbindung stehen. Werfen wir einen Blick auf die weiteren Schritte:
Wie implementieren?
const partition = (predicate, array) => array.reduce( (result3, item) => { const [list1, list2] = result; if (predicate(item) === true) { list1.push(item); } else { list2.push(item); } return result3; }, [ [], [] ] );
Anwendungsfall:
const isEven = (z) => z % 2 === 0; partition(isEven, [1, 2, 3]);
Verwendete Parameter
Array (um die Liste der Elemente zu testen), Prädikat (ist eine Funktion, die den Wert true oder false zurückgibt)
Arbeiten
Wenn das Prädikat bei Eingabe eines Eingabewerts den Wert true zurückgibt, geben alle den Wert true zurück. Andernfalls wird ein falscher Wert zurückgegeben.
Wie implementieren?
const all = (predicate, array) => array.reduce((arr, val) => arr && predicate(val), true);
Anwendungsfall:
const sequl3 = (x) => x === 3; all(sequl3, [3]);
Verwendete Parameter
Array (um die Liste der Elemente zu testen), Prädikat (ist eine Funktion, die den Wert true oder false zurückgibt)
Arbeiten
Wenn das Prädikat für einen Eingabewert true zurückgibt, geben einige true zurück. Andernfalls wird ein falscher Wert zurückgegeben.
Wie implementieren?
Nehmen wir ein Beispiel dafür: const some = (predicate, array) => array.reduce((arc, val) => arc || predicate(val), false);
Anwendungsfall:
const aqua3 = (x) => x === 3; some(aqua3, [3]);
Verwendete Parameter
Array (um den Wert der Elemente zu speichern), Schlüssel (um den Schlüsselnamen vom Objekt zu übernehmen)
Arbeiten
Er kann den angegebenen Schlüssel von jedem Element im Array abziehen und gibt weiterhin ein neues Array der entsprechenden Werte zurück.
Wie implementieren?
const pluck = (key3, array) => array.reduce((values3, current) => { values.push(current[key3]); return values3; }, [] );
Anwendungsfall:
pluck('name', [{ name: 'Soman' }, { name: 'Rovin' }, { name: 'Jojo' }]);
Verwendete Parameter
Array (um Elemente in der Liste des Arrays zu suchen), Prädikat (Funktion, die den Wert false oder true zurückgibt)
Arbeiten
Es wird das erste Element zurückgegeben, das mit dem angegebenen Prädikat übereinstimmt. Wird keine Übereinstimmung gefunden, wird undefined zurückgegeben.
Wie implementieren?
const find = (predicate, array) => array.reduce((output, item) => { if (output !== undefined) { return output; } if (predicate(item) === true) { return item; } return undefined; }, undefined);
Anwendungsfall:
const isEven = (a) => a % 2 === 0; find(isEven, []);
Schlussbemerkung:
Auf diese Weise können Sie Funktionen des JavaScript-Dienstprogramms in kürzerer Zeit implementieren. Dies wird auf jeden Fall Software-Entwicklern helfen, Zeit und Programmieraufwand zu sparen. Wenn Sie eine perfekte Unterstützung für Ihre Codierungsanfragen benötigen, können Sie sich für Ihre Projektanforderungen an ein erfahrenes Softwareentwicklungsunternehmen wenden.