Javascript fondamentaux
Thème :
Intermédiaire
1 vues ·13/19 leçons

É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() et padEnd()

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 :

  1. Ajouter une tâche : Chaque tâche a un titre, une priorité (haute/normale/basse), un statut (complétée/non complétée)

  2. Marquer comme complétée : Modifier le statut d’une tâche

  3. Supprimer une tâche : Retirer une tâche de la liste

  4. Obtenir les tâches actives : Filtrer les tâches non complétées

  5. Obtenir les tâches par priorité : Grouper les tâches par priorité

  6. Obtenir les statistiques :

    • Nombre total de tâches
    • Nombre de tâches complétées
    • Nombre de tâches actives
  7. 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.