Pour aplatir un tableau jusqu'à une profondeur spécifiée en JavaScript, suivez ces étapes :
- Ouvrez le Terminal/SSH et tapez
node
pour commencer à pratiquer la programmation.
- Utilisez la fonction
flatten
avec deux arguments : arr
(le tableau à aplatir) et depth
(le nombre maximum de niveaux imbriqués à aplatir).
- À l'intérieur de la fonction
flatten
, utilisez la récursion pour décrémenter depth
de 1
pour chaque niveau de profondeur.
- Utilisez
Array.prototype.reduce()
et Array.prototype.concat()
pour fusionner des éléments ou des tableaux.
- Ajoutez un cas de base pour le moment où
depth
est égal à 1
pour arrêter la récursion.
- Omettez le second argument,
depth
, pour aplatir seulement jusqu'à une profondeur de 1
(aplatissement unique).
Voici le code pour la fonction flatten
:
const flatten = (arr, depth = 1) =>
arr.reduce(
(a, v) =>
a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v),
[]
);
Vous pouvez tester la fonction flatten
avec les exemples suivants :
flatten([1, [2], 3, 4]); // [1, 2, 3, 4]
flatten([1, [2, [3, [4, 5], 6], 7], 8], 2); // [1, 2, 3, [4, 5], 6, 7, 8]