Arrays in JavaScript zippen

Shiv Yadav 12 Oktober 2023
  1. Verwenden Sie die map-Methode zum Zippen von Arrays in JavaScript
  2. Verwenden Sie die Methode Array.from zum Zippen von Arrays in JavaScript
Arrays in JavaScript zippen

In JavaScript gibt es Situationen, in denen wir zwei Arrays komprimieren möchten. In diesem Tutorial untersuchen wir das Flashen von zwei Sammlungen mit JavaScript.

Das JavaScript-Gegenstück der Python-Funktion zip muss geschrieben werden. Mit anderen Worten, wir müssen ein Array von Paaren erstellen, wenn viele Sammlungen gleicher Länge gegeben sind.

Es gibt verschiedene Möglichkeiten, wie wir zwei Arrays in JavaScript komprimieren können, z. B. die Verwendung der Methode map(), der Methode Array.from() und der Methode Array.prototype.fill().

Verwenden Sie die map-Methode zum Zippen von Arrays in JavaScript

Die Funktion map() in JavaScript komprimiert zwei Arrays einer bestimmten Länge. Es ergibt jedoch undefined, wenn die Länge beider Arrays nicht übereinstimmt.

let a = [9, 8, 7];
let b = ['1', '2', '3'];
let zip = a.map(function(e, i) {
  return [e, b[i]];
});
console.log(zip);

Code ausführen

Die Rückruffunktion, die die Methode map() akzeptiert, ruft die Elemente des Arrays a und die Elemente des Arrays b auf, die der Sammlung a zugeordnet sind. Es ist auch einfach zu lernen, wie man auf diese Weise einen Reißverschluss herstellt.

Ausgabe:

[[9, "1"], [8, "2"], [7, "3"]]

Stellen Sie bei der Verwendung der map-Methode sicher, dass die Länge beider Arrays gleich sein muss; Andernfalls erhalten Sie das Ergebnis undefined.

let a = [9, 8, 7, 6];
let b = ['1', '2', '3'];
let zip = a.map(function(e, i) {
  return [e, b[i]];
});
console.log(zip);

Demo hier

Sie können sehen, dass die Längen der Arrays a und b unterschiedlich sind.

Ausgabe:

[[9, "1"], [8, "2"], [7, "3"], [6, undefined]]

Verwenden Sie die Methode Array.from zum Zippen von Arrays in JavaScript

let a = [9, 8, 7, 6];
let b = ['90', '80', '70', '60'];
let zip = (a, b) =>
    Array.from(Array(Math.max(a.length, b.length)), (_, i) => [a[i], b[i]]);
console.log(zip(a, b));

Code ausführen

In der Instanz der Methode Array.from sind zwei Arrays vorhanden; Sie werden an eine Pfeilfunktion gesendet. Nach dem Anpassen der Länge ordnet der Prozess die Elemente aus zwei separaten Arrays zu.

Ausgabe:

[[9, "90"], [8, "80"], [7, "70"], [6, "60"]]

Darüber hinaus gibt die entsprechende Karte undefined für jedes fehlende Element aus.

let a = [9, 8, 7];
let b = ['90', '80', '70', '60'];
let zip = (a, b) =>
    Array.from(Array(Math.max(a.length, b.length)), (_, i) => [a[i], b[i]]);
console.log(zip(a, b));

Demo hier

Ausgabe:

[[9, "90"], [8, "80"], [7, "70"], [undefined, "60"]]

Die Methode Array.prototype.fill() funktioniert genauso wie die Methode Array.from().

let a = [7, 8, 9];
let b = ['70', '80', '90'];
let zip = (a, b) =>
    Array(Math.max(a.length, b.length)).fill().map((_, i) => [a[i], b[i]]);
console.log(zip(a, b));

Code ausführen

Ausgabe:

[[7, "70"], [8, "80"], [9, "90"]]
Autor: Shiv Yadav
Shiv Yadav avatar Shiv Yadav avatar

Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.

LinkedIn

Verwandter Artikel - JavaScript Array