Codage : Aplatir un tableau en Javascript

Feb 18 2023
Aplatir un tableau : Aplatir un tableau signifie prendre un tableau qui peut contenir des tableaux imbriqués (c'est-à-dire

Aplatir un tableau : aplatir un tableau signifie prendre un tableau qui peut contenir des tableaux imbriqués (c'est-à-dire des tableaux dans des tableaux) et le convertir en un seul tableau unidimensionnel. En d'autres termes, il s'agit de supprimer tous les tableaux imbriqués et de combiner leurs éléments en un seul tableau.

Nous discuterons de plusieurs solutions.

Solution 1 : Utiliser la récursivité

Aplatir le tableau

Le code définit une fonction appelée FlattenArrayqui prend un tableau comme argument. Le but de la fonction est de prendre un tableau imbriqué et d'en renvoyer une version aplatie. Par exemple, si l'entrée est [1, 2, [3, 4]], la fonction doit renvoyer [1, 2, 3, 4].

La fonction commence par créer un tableau vide appelé, qui sera utilisé pour stocker la version aplatie du tableau d'entrée. Il entre ensuite dans forune boucle a qui parcourt chaque élément du tableau d'entrée.

Pour chaque élément du tableau d'entrée, la fonction vérifie si l'élément est lui-même un tableau en utilisant la Array.isArrayméthode. Si l'élément est un tableau, la fonction s'appelle elle-même de manière récursive avec le tableau imbriqué comme argument et utilise la concatméthode pour combiner le tableau imbriqué aplati avec celui flatArrayqui a été créé au début de la fonction.

Si l'élément n'est pas un tableau, la fonction pousse simplement l'élément sur le flatArray.

Une fois que tous les éléments du tableau d'entrée ont été traités, la fonction renvoie le fichier flatArray.

Code complet :

// Flatten Array
function FlattenArray(arr) {
  var flatArray = []
  for (let i = 0; i < arr.length; i++) {
    if (Array.isArray(arr[i])) {
      flatArray = flatArray.concat(FlattenArray(arr[i]))
    } else {
      flatArray.push(arr[i])
    }
  }
  return flatArray
}

var arr = [1, 2, 3, 4, [5, 6, [7, 8]], [9]]
console.log(FlattenArray(arr))

Solution 2 : Utiliser la méthode de réduction

function flattenArray(arr) {
  return arr.reduce(function(flatArray, current) {
    if (Array.isArray(current)) {
      return flatArray.concat(flattenArray(current));
    } else {
      return flatArray.concat(current);
    }
  }, []);
}

var arr = [1, 2, 3, 4, [5, 6, [7, 8]], [9]];
console.log(flattenArray(arr)); // [1, 2, 3, 4, 5, 6, 7, 8, 9]

La reduceméthode prend deux arguments : une fonction de rappel et une valeur initiale pour l'accumulateur. Dans ce cas, l'accumulateur est un tableau vide qui sera utilisé pour construire la version aplatie du tableau d'entrée.

La fonction de rappel prend deux arguments : la valeur actuelle en cours de traitement (qui sera tour à tour chaque élément du tableau d'entrée) et la valeur actuelle de l'accumulateur.

Dans la fonction de rappel, nous vérifions si la valeur actuelle est un tableau en utilisant Array.isArray. S'il s'agit d'un tableau, nous appelons flattenArrayde manière récursive pour aplatir le tableau imbriqué, puis concaténons le tableau aplati avec l'accumulateur à l'aide de la concatméthode.

Si la valeur actuelle n'est pas un tableau, nous la concaténons simplement avec l'accumulateur en utilisant concat.

Enfin, la reduceméthode renvoie la valeur finale de l'accumulateur, qui sera la version aplatie du tableau d'entrée.

Avec ce code, vous devriez obtenir la même sortie qu'avant : [1, 2, 3, 4, 5, 6, 7, 8, 9].

Si vous souhaitez en savoir plus sur le codage en Javascript, assurez-vous de me suivre pour plus d'extraits de code et d'exemples. Je partagerai des informations précieuses et des conseils sur la façon de maîtriser la langue et d'améliorer vos compétences en tant que développeur. Alors, restez à l'écoute pour plus de mises à jour, et continuons à apprendre ensemble.

Merci d'avoir lu. Bon apprentissage

Explication du threading et du multitraitement en Python