Énoncés des TPs - Structures de Données et Méthodes Modernes
TP 1 : map() - Transformer les données
Vous devez transformer un tableau de nombres en appliquant différentes opérations.
Exercice 1.1 : Créez un tableau nombres = [1, 2, 3, 4, 5] et utilisez map() pour :
- Doubler chaque nombre
- Élever chaque nombre au carré
- Convertir chaque nombre en chaîne avec le symbole “€”
Exercice 1.2 : Vous avez un tableau d’utilisateurs :
const utilisateurs = [
{ nom: 'Alice', age: 25 },
{ nom: 'Bob', age: 30 },
];
Utilisez map() pour :
- Extraire seulement les noms
- Créer des phrases : “Alice a 25 ans”
- Ajouter une propriété
adulte: true/false
Exercice 1.3 : Convertissez des prix en dollars en euros (multiplier par 0.92) et ajouter le symbole “€”
TP 2 : filter() - Sélectionner les données
Vous devez filtrer un tableau selon différents critères.
Exercice 2.1 : Avec nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], utilisez filter() pour :
- Garder seulement les nombres pairs
- Garder seulement les nombres > 5
- Garder seulement les nombres entre 3 et 7
Exercice 2.2 : Avec un tableau d’utilisateurs :
const utilisateurs = [
{ nom: 'Alice', age: 25, ville: 'Paris' },
{ nom: 'Bob', age: 17, ville: 'Lyon' },
{ nom: 'Charlie', age: 35, ville: 'Paris' },
];
Utilisez filter() pour :
- Garder seulement les majeurs (age >= 18)
- Garder seulement les habitants de Paris
- Garder les majeurs de Paris
Exercice 2.3 : Avec un tableau de produits, filtrez :
- Les produits en stock (stock > 0)
- Les produits moins chers que 100€
- Les produits chers en stock
TP 3 : reduce() - Agréger les données
Vous devez combiner tous les éléments en une seule valeur.
Exercice 3.1 : Avec nombres = [1, 2, 3, 4, 5], utilisez reduce() pour :
- Calculer la somme de tous les nombres
- Calculer le produit de tous les nombres
- Trouver le nombre maximum
Exercice 3.2 : Avec fruits = ['pomme', 'banane', 'pomme', 'orange', 'banane', 'pomme'], utilisez reduce() pour :
- Compter combien de fois chaque fruit apparaît
- Créer un objet :
{ pomme: 3, banane: 2, orange: 1 }
Exercice 3.3 : Avec un tableau d’utilisateurs, groupez-les par ville en utilisant reduce()
Exercice 3.4 : Avec un tableau d’articles de commande, calculez le total : (prix × quantité) pour chaque article
TP 4 : find/some/every - Rechercher les données
Vous devez chercher et vérifier les éléments d’un tableau.
Exercice 4.1 : Avec un tableau d’utilisateurs :
const utilisateurs = [
{ id: 1, nom: 'Alice' },
{ id: 2, nom: 'Bob' },
{ id: 3, nom: 'Charlie' },
];
Utilisez find() et findIndex() pour :
- Trouver l’utilisateur avec le nom ‘Bob’
- Trouver l’index de ‘Bob’
- Trouver le premier utilisateur avec id > 1
Exercice 4.2 : Avec notes = [12, 15, 18, 14, 16], utilisez some() et every() pour :
- Vérifier si au moins une note est >= 18
- Vérifier si toutes les notes sont >= 10
- Vérifier si toutes les notes sont >= 15
Exercice 4.3 : Avec un tableau de produits, vérifiez :
- S’il existe au moins un produit en stock
- Si tous les produits coûtent moins de 1000€
TP 5 : Set/Map - Structures de données
Vous devez utiliser les structures de données modernes.
Exercice 5.1 : Utilisez Set pour :
- Créer un ensemble de tags sans doublons :
['javascript', 'html', 'css', 'javascript'] - Ajouter un nouveau tag
- Vérifier si un tag existe
- Convertir le Set en tableau
- Supprimer un tag
Exercice 5.2 : Utilisez Map pour :
- Créer un cache d’utilisateurs
- Ajouter des données :
cache.set('user:1', { nom: 'Alice' }) - Récupérer une donnée
- Vérifier l’existence d’une clé
- Parcourir la Map
- Supprimer une entrée
Exercice 5.3 : Utilisez une Map pour compter les occurrences de fruits dans un tableau
TP 6 : Destructuring - Extraire les valeurs
Vous devez extraire les valeurs d’objets et tableaux de manière concise.
Exercice 6.1 : Destructuring de tableaux :
- Extraire les 3 premiers éléments de
['rouge', 'vert', 'bleu', 'jaune'] - Ignorer un élément
- Récupérer le reste des éléments
- Utiliser des valeurs par défaut
Exercice 6.2 : Destructuring d’objets :
const utilisateur = {
nom: 'Alice',
age: 25,
ville: 'Paris',
pays: 'France',
};
- Extraire les propriétés
nom,age,ville - Renommer une propriété
- Utiliser des valeurs par défaut
- Récupérer le reste des propriétés
Exercice 6.3 : Destructuring imbriquée :
const produit = {
nom: 'iPhone',
details: {
couleur: 'noir',
stockage: '256GB',
},
};
Extraire les informations imbriquées
TP 7 : Spread - Copier/fusionner
Vous devez dupliquer et fusionner des données.
Exercice 7.1 : Spread avec tableaux :
- Copier un tableau sans le modifier
- Fusionner deux tableaux
- Ajouter des éléments à un tableau copié
Exercice 7.2 : Spread avec objets :
- Copier un objet sans le modifier
- Fusionner deux objets
- Ajouter/modifier une propriété lors de la copie
Exercice 7.3 : Spread avec rest parameters :
- Créer une fonction
somme(...nombres)qui additionne tous les arguments - Créer une fonction
fusion(...objets)qui fusionne tous les objets
TP 8 : Chaînes - Manipuler le texte
Vous devez manipuler les chaînes de caractères avec les méthodes modernes.
Exercice 8.1 : Template literals :
- Créer un message avec interpolation :
Bonjour ${nom}, tu as ${age} ans - Créer un texte multilignes
- Utiliser des expressions dans les templates
Exercice 8.2 : Méthodes modernes :
- Nettoyer les espaces avec
trim() - Convertir en majuscules/minuscules
- Remplacer toutes les occurrences avec
replaceAll() - Vérifier le contenu avec
includes(),startsWith(),endsWith() - Répéter une chaîne avec
repeat() - Ajouter du padding avec
padStart()etpadEnd()
Exercice 8.3 : Diviser et rejoindre :
- Diviser une phrase en mots avec
split() - Rejoindre un tableau en chaîne avec
join()
TP 9 : Combinaisons - Problèmes complexes
Vous devez combiner plusieurs méthodes pour résoudre des problèmes complexes.
Exercice 9.1 : Calculer le total des commandes :
const commandes = [
{ id: 1, articles: [{ prix: 10 }, { prix: 20 }] },
{ id: 2, articles: [{ prix: 5 }] },
{ id: 3, articles: [{ prix: 100 }, { prix: 50 }] },
];
Utilisez map() + reduce() pour calculer le total global
Exercice 9.2 : Filtrer et transformer :
const utilisateurs = [
{ nom: 'Alice', age: 25, ville: 'Paris' },
{ nom: 'Bob', age: 17, ville: 'Lyon' },
{ nom: 'Charlie', age: 35, ville: 'Paris' },
];
Récupérez les noms des majeurs de Paris avec filter() + map()
Exercice 9.3 : Grouper et compter :
const produits = [
{ nom: 'iPhone', categorie: 'electronique' },
{ nom: 'Pomme', categorie: 'alimentaire' },
];
- Groupez par catégorie
- Comptez les produits par catégorie
- Calculez le prix moyen par catégorie
TP 10 : Projet complet - Gestionnaire de Tâches
Créez une application complète de gestion de tâches avec les fonctionnalités suivantes :
Fonctionnalités requises :
-
Ajouter une tâche : Chaque tâche a un titre, une priorité (haute/normale/basse), un statut (complétée/non complétée)
-
Marquer comme complétée : Modifier le statut d’une tâche
-
Supprimer une tâche : Retirer une tâche de la liste
-
Obtenir les tâches actives : Filtrer les tâches non complétées
-
Obtenir les tâches par priorité : Grouper les tâches par priorité
-
Obtenir les statistiques :
- Nombre total de tâches
- Nombre de tâches complétées
- Nombre de tâches actives
-
Afficher les tâches : Afficher toutes les tâches avec leur statut et priorité
Contraintes :
- Utilisez une classe
GestionnaireTaches - Utilisez
map(),filter(),reduce()pour les opérations - Chaque tâche doit avoir un ID unique
- Les tâches doivent être stockées dans un tableau
Bonus :
- Ajouter une méthode pour trier les tâches par priorité
- Ajouter une méthode pour rechercher une tâche par titre
- Ajouter une méthode pour exporter les tâches en JSON
📌 Conseils pour réaliser les TPs
✅ Commencez par les TPs 1-3 pour maîtriser les bases
✅ Les TPs 4-5 introduisent de nouvelles structures
✅ Les TPs 6-8 vous rendent plus efficace
✅ Les TPs 9-10 combinent tout ce que vous avez appris
✅ Testez chaque exercice dans la console
✅ N’hésitez pas à combiner les méthodes
✅ Utilisez console.log() pour déboguer
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur Énoncés des TPs - Structures de Données et Méthodes Modernes. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.