Einführung
In diesem Lab werden wir untersuchen, wie man Array-Elemente anhand ihrer Position in den ursprünglichen Arrays gruppiert. Wir werden die zip()-Funktion verwenden, die mehrere Arrays akzeptiert und ein neues Array zurückgibt, das Unterarrays von Elementen aus jedem Eingabearray enthält, gruppiert nach ihrer Position. Dies ist eine nützliche Technik bei der Datenverarbeitung und -analyse und kann verwendet werden, um Daten aus mehreren Quellen in eine einzelne Datenstruktur zu kombinieren, um eine weitere Analyse durchzuführen.
Array-Elemente gruppieren
Um die Elemente von Arrays anhand ihrer Position in den ursprünglichen Arrays zu gruppieren, verwenden Sie die unten bereitgestellte zip-Funktion.
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Codeausführung zu beginnen. - Die
zip-Funktion verwendetMath.max()undFunction.prototype.apply(), um das längste Array in den Argumenten zu erhalten. - Sie erstellt ein Array mit dieser Länge als Rückgabewert und verwendet
Array.from()mit einer Mapping-Funktion, um ein Array von gruppierten Elementen zu erstellen. - Wenn die Längen der Argument-Arrays unterschiedlich sind, wird
undefinedverwendet, wenn kein Wert gefunden werden kann.
const zip = (...arrays) => {
const maxLength = Math.max(...arrays.map((x) => x.length));
return Array.from({ length: maxLength }).map((_, i) => {
return Array.from({ length: arrays.length }, (_, k) => arrays[k][i]);
});
};
Beispielverwendung:
zip(["a", "b"], [1, 2], [true, false]); // [['a', 1, true], ['b', 2, false]]
zip(["a"], [1, 2], [true, false]); // [['a', 1, true], [undefined, 2, false]]
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Array-Elemente gruppieren" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.