Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Tri et Extraction de Propriétés | Opérations Avancées sur les Tableaux
Structures de Données JavaScript
course content

Contenu du cours

Structures de Données JavaScript

Structures de Données JavaScript

1. Introduction et Prérequis
2. Fondamentaux des Objets
3. Manipulation Avancée des Objets
4. Maîtriser les Tableaux
5. Opérations Avancées sur les Tableaux

book
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 :

  1. 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.
  2. 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é.

123456789101112131415161718192021222324252627282930313233343536
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);
copy

Résultat attendu :

  1. Pour trier par titre, utilisez localeCompare() avec la propriété title.
  2. Pour trier par auteur, appliquez localeCompare() avec la propriété author.
  3. Pour trier par année, utilisez une comparaison numérique basée sur la propriété publicationYear.
  4. Utilisez la méthode map() pour créer de nouveaux tableaux avec des propriétés spécifiques.
  5. Créez une fonction de rappel pour map() qui retourne la propriété souhaitée pour chaque livre.
  6. Pour extraire les titres, auteurs et années, les fonctions de rappel doivent retourner respectivement les propriétés titleauthor et publicationYear.
  7. 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.
123456789101112131415161718192021222324252627282930313233343536
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);
copy

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 8
We're sorry to hear that something went wrong. What happened?
some-alt