Ejercicio de programación con JavaScript: Reto Clases y objetos
0h 15m
JavaScript: Clases y Objetos. Aprende a crear una clase Library para gestionar libros usando ES2023. Implementa métodos para añadir, eliminar y consultar los libros.
Crea una clase Library
que permita gestionar una colección de libros. La clase debe tener las siguientes características:
Un campo privado
#books
que será un array para almacenar los libros.Un constructor que inicialice el array de libros vacío.
Un método
addBook(title, author, year)
que añada un nuevo libro al array. Cada libro debe ser un objeto con las propiedades: title, author, year y id (un identificador único generado automáticamente).Un método
removeBook(id)
que elimine un libro según su id. Debe devolver true si se eliminó correctamente o false si no se encontró el libro.Un método
getBooksByAuthor(author)
que devuelva un array con todos los libros de un autor específico.Un método
getTotalBooks()
que devuelva la cantidad total de libros en la biblioteca.Un método privado
#generateId()
que genere un identificador único para cada libro (puedes usar un contador o alguna otra técnica).
Debe ser posible utilizar la clase de la siguiente manera:
const library = new Library();
library.addBook("Don Quijote", "Miguel de Cervantes", 1605);
library.addBook("Cien años de soledad", "Gabriel García Márquez", 1967);
library.addBook("Rayuela", "Julio Cortázar", 1963);
library.addBook("El Aleph", "Jorge Luis Borges", 1949);
library.addBook("Ficciones", "Jorge Luis Borges", 1944);
console.log(library.getTotalBooks()); // Debería mostrar 5
console.log(library.getBooksByAuthor("Jorge Luis Borges")); // Debería mostrar un array con los dos libros de Borges
Todos los ejercicios de programación de JavaScript
Evalúa tus conocimientos con ejercicios de programación en JavaScript de tipo Test, Puzzle, Código y Proyecto con VSCode.
Excepciones
Transformación con map()
Arrays y Métodos
Reto Métodos de Strings
Transformación con map()
Funciones flecha
Selección de elementos DOM
API Fetch
Encapsulación
Mapas con Map
Creación y uso de variables
Polimorfismo
Reto Funciones flecha
Tipos de datos
Reto Operadores avanzados
Reto Estructuras de control
Estructuras de control
Pruebas unitarias
Inmutabilidad y programación funcional pura
Funciones flecha
Polimorfismo
Reto Polimorfismo
Array
Transformación con map()
Reto Variables
Gestor de tareas con JavaScript
Proyecto Modificación de elementos DOM
Manipulación DOM
Funciones
Conjuntos con Set
Reto Prototipos y cadena de prototipos
Reto Encapsulación
Funciones flecha
Async / Await
Reto Excepciones
Reto Filtrado con filter() y find()
Reto Promises
Creación y uso de variables
Excepciones
Promises
Funciones cierre (closure)
Reto Herencia
Herencia
Reto Async / Await
Proyecto Eventos del DOM
Herencia
Selección de elementos DOM
Modificación de elementos DOM
Filtrado con filter() y find()
Funciones cierre (closure)
Reto Destructuring de objetos y arrays
Callbacks
Funciones
Mapas con Map
Reducción con reduce()
Callbacks
Manipulación DOM
Introducción al DOM
Reto Funciones
Reto Funciones cierre (closure)
Promises
Reto Reducción con reduce()
Async / Await
Reto Estructuras de control
Eventos del DOM
Introducción a JavaScript
Async / Await
Promises
Selección de elementos DOM
Filtrado con filter() y find()
Callbacks
Creación de clases y objetos Restaurante
Reducción con reduce()
Filtrado con filter() y find()
Reducción con reduce()
Conjuntos con Set
Herencia de clases
Eventos del DOM
Clases y objetos
Modificación de elementos DOM
Mapas con Map
Proyecto carrito compra agoodshop
Introducción a JavaScript
Reto Mapas con Map
Funciones
Proyecto administrador de contactos
Reto Expresiones regulares
Tipos de datos
Clases y objetos
Array
Conjuntos con Set
Array
Encapsulación
Clases y objetos
Uso de operadores
Uso de operadores
Estructuras de control
Proyecto Manipulación DOM
Tutorial para resolver este ejercicio de programación
JavaScript
Clases y objetos
Programación Orientada a Objetos