Comprimir Arrays en JavaScript

Shiv Yadav 12 octubre 2023
  1. Use el método map para comprimir arreglos en JavaScript
  2. Utilice el método Array.from para comprimir arrays en JavaScript
Comprimir Arrays en JavaScript

En JavaScript, hay situaciones en las que deseamos comprimir dos matrices. Examinaremos flashear dos colecciones con JavaScript en este tutorial.

Se debe escribir la contrapartida de JavaScript de la función zip de Python. En otras palabras, necesitamos hacer una matriz de pares dadas muchas colecciones de igual longitud.

Hay diferentes formas en las que podemos comprimir dos arreglos en JavaScript, como usar el método map(), el método Array.from() y el método Array.prototype.fill().

Use el método map para comprimir arreglos en JavaScript

La función map() en JavaScript comprime dos matrices de cierta longitud. Sin embargo, da como resultado undefined si la longitud de ambas matrices no coincide.

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

Ejecutar código

La función de devolución de llamada que acepta el método map() llamará a los elementos del array a y los elementos del array b mapeados con la colección a. También es sencillo aprender a cerrar la cremallera de esta manera.

Producción :

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

Al usar el método map, asegúrese de que la longitud de ambos arrays debe ser la misma; de lo contrario, obtendrá el resultado 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);

Demostración aquí

Puede ver que las longitudes de las matrices a y b son diferentes.

Producción :

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

Utilice el método Array.from para comprimir arrays en 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));

Ejecutar código

Dos arrays estarán presentes en la instancia del método Array.from; serán enviados a una función de flecha. Después de hacer coincidir la longitud, el proceso asignará los elementos de dos arrays separadas.

Producción :

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

Además, el mapa equivalente dará como resultado undefined para cualquier elemento que falte.

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));

Demostración aquí

Producción :

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

El método Array.prototype.fill() funciona igual que el método 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));

Ejecutar código

Producción :

[[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

Artículo relacionado - JavaScript Array