Aplatir des tableaux avec la récursion en JavaScript

JavaScriptJavaScriptBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons explorer le concept d'aplatissement d'un tableau jusqu'à une profondeur spécifiée en utilisant JavaScript. Nous allons apprendre à utiliser les méthodes de récursion, de réduction et de concaténation pour fusionner des éléments ou des tableaux. À la fin de ce laboratoire, vous serez capable d'aplatir efficacement les tableaux et de manipuler des structures de données imbriquées en JavaScript.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28311{{"Aplatir des tableaux avec la récursion en JavaScript"}} javascript/data_types -.-> lab-28311{{"Aplatir des tableaux avec la récursion en JavaScript"}} javascript/arith_ops -.-> lab-28311{{"Aplatir des tableaux avec la récursion en JavaScript"}} javascript/comp_ops -.-> lab-28311{{"Aplatir des tableaux avec la récursion en JavaScript"}} javascript/higher_funcs -.-> lab-28311{{"Aplatir des tableaux avec la récursion en JavaScript"}} end

Comment aplatir un tableau avec JavaScript

Pour aplatir un tableau jusqu'à une profondeur spécifiée en JavaScript, suivez ces étapes :

  1. Ouvrez le Terminal/SSH et tapez node pour commencer à pratiquer la programmation.
  2. Utilisez la fonction flatten avec deux arguments : arr (le tableau à aplatir) et depth (le nombre maximum de niveaux imbriqués à aplatir).
  3. À l'intérieur de la fonction flatten, utilisez la récursion pour décrémenter depth de 1 pour chaque niveau de profondeur.
  4. Utilisez Array.prototype.reduce() et Array.prototype.concat() pour fusionner des éléments ou des tableaux.
  5. Ajoutez un cas de base pour le moment où depth est égal à 1 pour arrêter la récursion.
  6. 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]

Sommaire

Félicitations ! Vous avez terminé le laboratoire Aplatir un tableau. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.