Menu
Coddy logo textTech

Recherche par titre

Fait partie de la section Logique & Flux du Journey JavaScript de Coddy — leçon 44 sur 65.

challenge icon

Défi

Facile

Créez un nouveau cas searchByTitle dans votre instruction switch. Cette action doit rechercher des livres par leur titre.

Pour le cas searchByTitle :

  1. Le paramètre currentData est une chaîne de caractères à rechercher
  2. Créez un tableau vide searchResults pour stocker les résultats de la recherche
  3. Parcourez tous les livres de la bibliothèque
  4. Pour chaque livre, vérifiez si son titre inclut la chaîne de recherche
  5. La recherche doit être insensible à la casse (convertissez les deux chaînes en minuscules avant de comparer)
  6. Si une correspondance est trouvée, ajoutez le livre au tableau searchResults
  7. Ajoutez le tableau searchResults 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;
            default:
                results.push("Invalid action!");
        }
    }
    
    return results;
}

Toutes les leçons de Logique & Flux