Maison >interface Web >js tutoriel >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 ?

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 ?

王林
王林original
2024-07-24 00:13:231122parcourir

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];

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]

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!

Déclaration:
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
Article précédent:Jours de Code Semaine 4Article suivant:Jours de Code Semaine 4