Maison > interface Web > js tutoriel > le corps du texte

Qu'est-ce qu'un tableau aplati et comment résoudre le problème d'un tableau aplati à l'aide de fonctions de récursivité en JavaScript ?

王林
Libérer: 2024-07-24 00:13:23
original
1118 Les gens l'ont consulté

What is a flattened array and How do solving flatten array problem using recursion functions in JavaScript?

Introduction:

Commençons par comprendre ce qu'est un tableau aplati. Un tableau aplati est un tableau, mais ce tableau est une forme de tableau multidimensionnel, de tableau imbriqué ou de tableau contenant un autre tableau.

Aplatir est une approche ou une technique qui permet de réduire le tableau multidimensionnel à un tableau unidimensionnel appelé aplatir.

Parfois, nous avons besoin de ce type de données lorsque nous travaillons sur des projets ou résolvons un problème, il est alors utile de transmettre le groupe de l'ensemble de données à l'aide d'un tableau aplati.

Exemple :

// This is a flattened array
let arr = [1,44, [2, [3,9], 67], 9];
Copier après la connexion

Comment résoudre les problèmes d’un tableau aplati ?

Il existe plusieurs façons de résoudre ce genre de problème mais ici, je vais vous expliquer en utilisant la méthode Recursion, c'est l'une des meilleures approches pour résoudre ce genre de problème.

Ici, je ne vais pas détailler l'explication de la récursion, mais je vais donner un petit aperçu de ce qui se passe, si vous voulez en savoir plus, je créerai un article séparé pour cela.

La récursion est une approche de programmation pour résoudre les problèmes de types de répétition d'œuvres, qui s'appellent directement ou indirectement jusqu'à ce qu'elles ne correspondent pas aux conditions particulières données, si elles correspondent, la fonction arrête l'appel elle-même.

 // This is a flattened array
// Input:
  let arr = [1,44, [2, [3,9], 67], 9];

  // Function Defin 
  function recur(a) {
    let newArr = [];
    for (let i =0 ; i < a.length; i++) {
        const element = a[i];
        if (Array.isArray(element)) {
            // Function calling itself recursion
            newArr.push(...recur(element))
        } else  {
            newArr.push(element)
        }
    }

    return newArr;
  }

console.log(recur(arr))
Output:
[1,44,2,3,9, 67, 9]

// We can also write the same code using for each:
function flattenArray(items) {
    const flat = [];
    items.forEach(item => {
      if (Array.isArray(item)) {
        flat.push(...flatten(item));
      } else {
        flat.push(item);
      }
    });

    return flat;
  }

onsole.log(flattenArray(arr))
output:
[1,44,2,3,9, 67, 9]
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal