Menu
Coddy logo textTech

Nach Genre filtern

Teil des Abschnitts Logik & Ablauf der JavaScript-Journey von Coddy. Lektion 45 von 65.

challenge icon

Aufgabe

Einfach

Füge deiner switch-Anweisung einen neuen Fall filterByGenre hinzu. Diese Aktion soll Bücher nach ihrem Genre filtern.

Für den Fall filterByGenre:

  1. Der Parameter currentData ist eine Zeichenkette, die das zu filternde Genre darstellt
  2. Erstelle ein leeres Array filteredResults, um die gefilterten Ergebnisse zu speichern
  3. Durchlaufe alle Bücher in der Bibliothek
  4. Prüfe für jedes Buch, ob sein Genre genau mit dem angeforderten Genre übereinstimmt
  5. Wenn es eine Übereinstimmung gibt, füge das Buch zum Array filteredResults hinzu
  6. Füge filteredResults zum Hauptarray results hinzu

Probier es selbst

// 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;
}

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-JavaScript-Compiler