Groupement d'éléments de tableau avec des fonctions

Beginner

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

Introduction

Dans ce laboratoire, nous allons apprendre à regrouper les éléments d'un tableau en fonction d'une fonction donnée en utilisant JavaScript. Nous allons utiliser Array.prototype.map() et Array.prototype.reduce() pour créer un objet dont les clés sont produites à partir des résultats de la mise en correspondance. À la fin de ce laboratoire, vous aurez une compréhension solide de la manière de regrouper et de catégoriser des données en JavaScript.

Comment regrouper les éléments d'un tableau

Si vous voulez pratiquer la programmation, vous pouvez commencer par ouvrir le Terminal/SSH et taper node. Une fois que vous êtes prêt, vous pouvez regrouper les éléments d'un tableau en fonction d'une fonction donnée en utilisant les étapes suivantes :

  1. Utilisez Array.prototype.map() pour mapper les valeurs du tableau à un nom de fonction ou de propriété.
  2. Utilisez Array.prototype.reduce() pour créer un objet dont les clés sont produites à partir des résultats de la mise en correspondance.

Voici un extrait de code d'exemple :

const groupBy = (arr, fn) =>
  arr
    .map(typeof fn === "function" ? fn : (val) => val[fn])
    .reduce((acc, val, i) => {
      acc[val] = (acc[val] || []).concat(arr[i]);
      return acc;
    }, {});

Pour tester le code, vous pouvez utiliser les exemples suivants :

groupBy([6.1, 4.2, 6.3], Math.floor); // {4: [4.2], 6: [6.1, 6.3]}
groupBy(["one", "two", "three"], "length"); // {3: ['one', 'two'], 5: ['three']}

Cela retournera des objets avec des clés basées sur la fonction spécifiée et des valeurs qui sont des tableaux des éléments originaux qui correspondent à la fonction.

Sommaire

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