Menu
Coddy logo textTech

Filtrer par genre

Fait partie de la section Logique & Flux du Journey JavaScript de Coddy. Leçon 45 sur 65.

challenge icon

Défi

Facile

Ajoutez un nouveau cas filterByGenre à votre instruction switch. Cette action doit filtrer les livres selon leur genre.

Pour le cas filterByGenre :

  1. Le paramètre currentData est une chaîne représentant le genre selon lequel filtrer
  2. Créez un tableau vide filteredResults pour stocker les résultats filtrés
  3. Parcourez tous les livres de la bibliothèque
  4. Pour chaque livre, vérifiez si son genre correspond exactement au genre demandé
  5. En cas de correspondance, ajoutez le livre au tableau filteredResults
  6. Ajoutez filteredResults au tableau principal results

Essayez vous-même

// Initialize library data
const libraryData = {
    books: [
        {
            id: 1,
            title: "The Great Gatsby",
            author: "F. Scott Fitzgerald",
            year: 1925,
            genre: "Fiction",
            isRead: false,
            rating: 0,
            borrowed: false,
            borrowedBy: "",
            borrowDate: ""
        }
    ],
    readers: [
        {
            name: "John Smith",
            favoriteGenre: "Fiction",
        }
    ]
};

function manageLibrary(actions, data) {
    let results = [];
    
    for (let i = 0; i < actions.length; i++) {
        const currentAction = actions[i];
        const currentData = data[i];
        
        switch (currentAction) {
            case 'printBooks':
                results.push(libraryData.books);
                break;
            case 'printReaders':
                results.push(libraryData.readers);
                break;
            case "addBook":
                // Add a new book to the library
                let newBook = {
                    id: libraryData.books.length + 1,
                    title: currentData.title,
                    author: currentData.author,
                    year: currentData.year,
                    genre: currentData.genre,
                    isRead: false,
                    rating: 0,
                    borrowed: false,
                    borrowedBy: "",
                    borrowDate: ""
                };
                libraryData.books.push(newBook);
                results.push("Book added successfully!");
                break;
            case "searchByTitle":
                // Search for books by title
                let searchResults = [];
                for(let i = 0; i < libraryData.books.length; i++) {
                    if(libraryData.books[i].title.toLowerCase().includes(currentData.toLowerCase())) {
                        searchResults.push(libraryData.books[i]);
                    }
                }
                results.push(searchResults);
                break;
            default:
                results.push("Invalid action!");
        }
    }

    return results;
}

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur JavaScript en ligne