Menu
Coddy logo textTech

Buscar por Título

Parte da seção Lógica & Fluxo do Journey de JavaScript da Coddy. Lição 44 de 65.

challenge icon

Desafio

Fácil

Crie um novo case searchByTitle em sua instrução switch. Esta ação deve buscar livros por seus títulos.

Para o case searchByTitle:

  1. O parâmetro currentData é uma string a ser pesquisada
  2. Crie um array vazio searchResults para armazenar os resultados da busca
  3. Percorra todos os livros na biblioteca
  4. Para cada livro, verifique se o seu título inclui a string de busca
  5. A busca deve ser insensível a maiúsculas e minúsculas (converta ambas as strings para minúsculas antes de comparar)
  6. Se uma correspondência for encontrada, adicione o livro ao array searchResults
  7. Adicione o array searchResults ao array principal results

Experimente você mesmo

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

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de JavaScript online