Comprimir Arrays en JavaScript
-
Use el método
map
para comprimir arreglos en JavaScript -
Utilice el método
Array.from
para 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);
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);
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));
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));
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));
Producción :
[[7, "70"], [8, "80"], [9, "90"]]
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