Contenu du cours
Structures de Données JavaScript
Structures de Données JavaScript
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 :
python
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);
Merci pour vos commentaires !