Contenu du cours
Structures de Données JavaScript
Structures de Données JavaScript
1. Introduction et Prérequis
2. Fondamentaux des Objets
Comprendre les ObjetsCréation d'ObjetPropriétés ImbriquéesDéfi : Créer un ObjetAccéder aux Propriétés de l'ObjetDéfi : Accéder aux Propriétés de l'ObjetTravailler Avec les PropriétésDéfi : Modifier et Étendre l'ObjectMéthodes d'ObjetPropriétés dans les MéthodesDéfi : Travailler avec les Méthodes d'ObjectRécapitulatif des Fondamentaux des Objets
3. Manipulation Avancée des Objets
Itération d'Objet avec la Boucle for...inDéfi : Explorateur de Propriétés d'ObjectMéthode hasOwnProperty()Défi : HasOwnProperty() pour l'Itération des Propriétés d'ObjetOpérateur de PropagationDéfi : Fusionner des Objets et Ajouter des PropriétésDéstructuration d'ObjetDéfi : DestructuringRécapitulatif de la Manipulation Avancée des Objets
5. Opérations Avancées sur les Tableaux
Défi : Tri et Extraction de Propriétés
Tâche
Étant donné un tableau de livres, chacun représenté par un objet avec des propriétés (title
, author
, publicationYear
), créez une solution qui effectue les tâches suivantes :
- Trier le tableau de livres :
- Trier par titre dans l'ordre croissant ;
- Trier par auteur dans l'ordre décroissant ;
- Trier par année dans l'ordre décroissant.
- Extraire des propriétés spécifiques dans des tableaux séparés :
- Créer un tableau contenant uniquement les titres des livres (triés par titre dans l'ordre croissant) ;
- Créer un tableau contenant uniquement les auteurs des livres (triés par auteur dans l'ordre décroissant) ;
- Créer un tableau contenant uniquement les années de publication des livres (triés par année dans l'ordre décroissant).
Assurez-vous que le tableau original de livres reste inchangé.
const books = [ { title: "Noughts & Crosses", author: "Malorie Blackman", publicationYear: 2001, }, { title: "Priestdaddy", author: "Patricia Lockwood", publicationYear: 2017, }, { title: "The Cost of Living", author: "Deborah Levy", publicationYear: 2018, }, ]; // Sort by `title` in ascending order const sortedByTitleAscending = ___ .sort((a, b) => a.title.___(b.title)) .___((book) => book.title); // Sort by `author` in descending order const sortedByAuthorDescending = [...books] .___((a, b) => b.___.localeCompare(a.___)) .map((book) => book.author); // Sort by `year` in descending order const sortedByYearDescending = [...books] .sort((a, b) => ___ ___ ___) .___((book) => book.publicationYear); console.log("Sorted by Title (Ascending):", sortedByTitleAscending); console.log("Sorted by Author (Descending):", sortedByAuthorDescending); console.log("Sorted by Year (Descending):", sortedByYearDescending);
Résultat attendu :
- Pour trier par titre, utilisez
localeCompare()
avec la propriététitle
. - Pour trier par auteur, appliquez
localeCompare()
avec la propriétéauthor
. - Pour trier par année, utilisez une comparaison numérique basée sur la propriété
publicationYear
. - Utilisez la méthode
map()
pour créer de nouveaux tableaux avec des propriétés spécifiques. - Créez une fonction de rappel pour
map()
qui retourne la propriété souhaitée pour chaque livre. - Pour extraire les titres, auteurs et années, les fonctions de rappel doivent retourner respectivement les propriétés
title
,author
etpublicationYear
. - Assurez-vous que le tableau original de livres reste inchangé. Utilisez la syntaxe de décomposition (
[...books]
) pour créer une copie pour le tri et l'extraction.
const books = [ { title: "Noughts & Crosses", author: "Malorie Blackman", publicationYear: 2001, }, { title: "Priestdaddy", author: "Patricia Lockwood", publicationYear: 2017, }, { title: "The Cost of Living", author: "Deborah Levy", publicationYear: 2018, }, ]; // Sort by `title` in ascending order const sortedByTitleAscending = [...books] .sort((a, b) => a.title.localeCompare(b.title)) .map((book) => book.title); // Sort by `author` in descending order const sortedByAuthorDescending = [...books] .sort((a, b) => b.author.localeCompare(a.author)) .map((book) => book.author); // Sort by `year` in descending order const sortedByYearDescending = [...books] .sort((a, b) => b.publicationYear - a.publicationYear) .map((book) => book.publicationYear); console.log("Sorted by Title (Ascending):", sortedByTitleAscending); console.log("Sorted by Author (Descending):", sortedByAuthorDescending); console.log("Sorted by Year (Descending):", sortedByYearDescending);
Tout était clair ?
Merci pour vos commentaires !
Section 5. Chapitre 8