Comprimir dos arrays en JavaScript
-
Use el método
map()
para comprimir dos arrays en JavaScript -
Use el método
Array.from()
para comprimir dos arrays en JavaScript -
Utilice el método
Array.prototype.fill()
para comprimir dos arrays
JavaScript tiene el método map()
para comprimir dos arrays de cierta longitud. Pero si las dos arrays correspondientes no coinciden con la longitud de cada una, entonces el array de longitud mínima imprime undefined
como su coincidencia.
Aquí, junto con el método map()
, veremos una demostración del método Array.form()
y también del método Array.prototype.fill()
, que tiene una declaración explícita de qué hacer cuando las longitudes del array no coinciden.
Use el método map()
para comprimir dos arrays en JavaScript
La función map()
toma una función de devolución de llamada que llamará a los elementos del array x
y los mapeará con los elementos del array y
. Esta forma simple de cerrar la cremallera también es fácil de entender.
Fragmento de código:
var x = [1, 2, 3];
var y = ['10', '20', '30'];
var z = x.map(function(e, i) {
return [e, y[i]];
});
console.log(z);
Producción:
Use el método Array.from()
para comprimir dos arrays en JavaScript
En la instancia del método Array.from()
, tendremos dos arrays y las pasaremos en una función de flecha. La función primero hará coincidir la longitud y luego mapeará los elementos de dos arrays diferentes. Además, cuando se encuentra que falta algún elemento, el mapa correspondiente imprimirá undefined
para eso.
Fragmento de código:
var x = [1, 2, 3, 4];
var y = ['10', '20', '30'];
var zip = (x, y) =>
Array.from(Array(Math.max(x.length, y.length)), (_, i) => [x[i], y[i]]);
console.log(zip(x, y));
Producción:
Utilice el método Array.prototype.fill()
para comprimir dos arrays
El método Array.prototype.fill()
funciona de manera similar al método Array.from()
y genera los resultados esperados.
Fragmento de código:
var x = [1, 2, 3];
var y = ['10', '20', '30', '40'];
const zip = (x, y) =>
Array(Math.max(x.length, y.length)).fill().map((_, i) => [x[i], y[i]]);
console.log(zip(x, y));
Producción: