Menu
Coddy logo textTech

Türe Göre Filtreleme

Coddy'nin JavaScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 45 / 65.

challenge icon

Görev

Kolay

Switch ifadenize yeni bir filterByGenre durumu (case) ekleyin. Bu eylem, kitapları türlerine göre filtrelemelidir.

filterByGenre durumu için:

  1. currentData parametresi, filtrelenecek türü temsil eden bir dizedir
  2. Filtrelenmiş sonuçları saklamak için boş bir filteredResults dizisi oluşturun
  3. Kütüphanedeki tüm kitaplar arasında döngü kurun
  4. Her kitap için, türünün istenen türle tam olarak eşleşip eşleşmediğini kontrol edin
  5. Eğer bir eşleşme varsa, kitabı filteredResults dizisine ekleyin
  6. filteredResults dizisini ana results dizisine ekleyin

Kendin dene

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

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online JavaScript derleyicisi