HOWTO · JavaScript
Compressez deux tableaux en JavaScript
La méthode la plus utilisée et la plus simple pour compresser deux tableaux est la méthode map() en JavaScript. Des méthodes comme Array.from() et Array.prototype.fill() sont également largement utilisées.
Sur cette page
JavaScript a la méthode map() pour compresser deux tableaux d’une certaine longueur. Mais si les deux tableaux correspondants ne correspondent pas à la longueur de l’autre, alors le tableau d’allongement minimum imprime undefined comme correspondance.
Ici, avec la méthode map(), nous verrons une démonstration de la méthode Array.form() ainsi que de la méthode Array.prototype.fill(), qui a une déclaration explicite de ce qu’il faut faire quand les longueurs de tableau ne correspondent pas.
Utilisez la méthode map() pour compresser deux tableaux en JavaScript
La fonction map() prend une fonction de rappel qui appellera les éléments du tableau x et les mappera avec les éléments du tableau y. Ce moyen simple de fermeture éclair est également facile à saisir.
Extrait de code:
var x = [1, 2, 3];
var y = ['10', '20', '30'];
var z = x.map(function(e, i) {
return [e, y[i]];
});
console.log(z);
Production :
Utilisez la méthode Array.from() pour compresser deux tableaux en JavaScript
Dans l’instance de la méthode Array.from(), nous aurons deux tableaux et les passerons dans une fonction fléchée. La fonction correspondra d’abord à la longueur, puis mappera les éléments de deux tableaux différents. De plus, lorsqu’un élément est trouvé manquant, la carte correspondante affichera undefined pour cela.
Extrait de code:
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));
Production :
Utilisez la méthode Array.prototype.fill() pour compresser deux tableaux
La méthode Array.prototype.fill() fonctionne de manière similaire à la méthode Array.from() et produit les résultats attendus.
Extrait de code:
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));
Production :