Menu
Coddy logo textTech

Buscar por título

Parte de la sección Lógica y Flujo del Journey de JavaScript de Coddy — lección 44 de 65.

challenge icon

Desafío

Fácil

Crea un nuevo caso searchByTitle en tu sentencia switch. Esta acción debe buscar libros por su título.

Para el caso searchByTitle:

  1. El parámetro currentData es una cadena para buscar
  2. Crea un array vacío searchResults para almacenar los resultados de la búsqueda
  3. Recorre todos los libros de la biblioteca
  4. Para cada libro, comprueba si su título incluye la cadena de búsqueda
  5. La búsqueda no debe distinguir entre mayúsculas y minúsculas (convierte ambas cadenas a minúsculas antes de comparar)
  6. Si se encuentra una coincidencia, añade el libro al array searchResults
  7. Añade el array searchResults al array principal results

Pruébalo tú mismo

// 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 las lecciones de Lógica y Flujo