Задача: Управление библиотекой (на ООП)
Создайте классы для управления библиотекой книг. Вам нужно создать следующие классы:
Book — класс для представления книги.
Library — класс для управления коллекцией книг.
Класс Book
Класс Book должен иметь следующие свойства и методы:
Свойства:
title (название книги)
author (автор книги)
year (год издания книги)
genre (жанр книги)
Методы:
Конструктор для инициализации свойств
Метод getSummary() для получения краткой информации о книге в виде строки: "Title" by Author, published in Year (Genre)
Класс Library
Класс Library должен иметь следующие свойства и методы:
Свойства:
books (массив книг)
Методы:
Конструктор для инициализации свойства books пустым массивом
Метод addBook(book) для добавления книги в библиотеку
Метод removeBook(title) для удаления книги по названию
Метод findBooksByAuthor(author) для поиска книг по автору, возвращает массив книг
Метод findBooksByGenre(genre) для поиска книг по жанру, возвращает массив книг
Метод getAllBooks() для получения всех книг в библиотеке
Пример использования:
#домашка
Создайте классы для управления библиотекой книг. Вам нужно создать следующие классы:
Book — класс для представления книги.
Library — класс для управления коллекцией книг.
Класс Book
Класс Book должен иметь следующие свойства и методы:
Свойства:
title (название книги)
author (автор книги)
year (год издания книги)
genre (жанр книги)
Методы:
Конструктор для инициализации свойств
Метод getSummary() для получения краткой информации о книге в виде строки: "Title" by Author, published in Year (Genre)
Класс Library
Класс Library должен иметь следующие свойства и методы:
Свойства:
books (массив книг)
Методы:
Конструктор для инициализации свойства books пустым массивом
Метод addBook(book) для добавления книги в библиотеку
Метод removeBook(title) для удаления книги по названию
Метод findBooksByAuthor(author) для поиска книг по автору, возвращает массив книг
Метод findBooksByGenre(genre) для поиска книг по жанру, возвращает массив книг
Метод getAllBooks() для получения всех книг в библиотеке
Пример использования:
// Создание экземпляров книг
const book1 = new Book('To Kill a Mockingbird', 'Harper Lee', 1960, 'Fiction');
const book2 = new Book('1984', 'George Orwell', 1949, 'Dystopian');
const book3 = new Book('The Great Gatsby', 'F. Scott Fitzgerald', 1925, 'Fiction');
// Создание экземпляра библиотеки и добавление книг
const library = new Library();
library.addBook(book1);
library.addBook(book2);
library.addBook(book3);
// Поиск книг по автору
const orwellBooks = library.findBooksByAuthor('George Orwell');
console.log(orwellBooks);
// Поиск книг по жанру
const fictionBooks = library.findBooksByGenre('Fiction');
console.log(fictionBooks);
// Получение всех книг
const allBooks = library.getAllBooks();
console.log(allBooks);
// Удаление книги
library.removeBook('1984');
console.log(library.getAllBooks());
#домашка
👍4❤1
Задача: Обработка списка URL
У вас есть список URL, которые нужно загрузить, и в каждом из них содержится JSON-объект. Ваша задача — написать функцию, которая:
Загружает все URL параллельно.
Собирает все данные в массив.
Обрабатывает данные (например, суммирует определённые поля).
Возвращает результат.
При этом необходимо обработать ошибки так, чтобы загрузка оставшихся данных не останавливалась, если один из запросов завершится с ошибкой.
Пример входных данных:
Пример результата:
Шаблон кода:
Подсказки:
- Используйте fetch для загрузки данных по URL.
- Используйте Promise.allSettled для обработки всех промисов, независимо от их завершения.
- Обработайте результаты так, чтобы проигнорировать ошибки и работать только с успешно загруженными данными.
#домашка
У вас есть список URL, которые нужно загрузить, и в каждом из них содержится JSON-объект. Ваша задача — написать функцию, которая:
Загружает все URL параллельно.
Собирает все данные в массив.
Обрабатывает данные (например, суммирует определённые поля).
Возвращает результат.
При этом необходимо обработать ошибки так, чтобы загрузка оставшихся данных не останавливалась, если один из запросов завершится с ошибкой.
Пример входных данных:
const urls = [
'https://api.example.com/data1',
'https://api.example.com/data2',
'https://api.example.com/data3',
];
Пример результата:
{
total: 42
}
Шаблон кода:
async function fetchData(urls) {
// Ваш код здесь
}
// Пример вызова функции
fetchData(urls).then(result => {
console.log(result); // Ожидаемый результат
}).catch(error => {
console.error(error); // Обработка ошибки
});
Подсказки:
- Используйте fetch для загрузки данных по URL.
- Используйте Promise.allSettled для обработки всех промисов, независимо от их завершения.
- Обработайте результаты так, чтобы проигнорировать ошибки и работать только с успешно загруженными данными.
#домашка
👍7
Подборка лучших постов за прошлую неделю
Лучшие статьи @free_html_lessons:
1. Как начать изучать React.js для верстальщику
2. Задача: Управление библиотекой
3. mix-blend-mode
Лучшие фронтенд вакансии @job_webdev:
1. Junior React Developer
2. HTML-верстальщик
3. Frontend разработчик
Лучшие дизайн вакансии @job_webdesign:
1. Web-дизайнер
2. UX/UI дизайнер
3. Графический дизайнер
#лучшеезанеделю
Лучшие статьи @free_html_lessons:
1. Как начать изучать React.js для верстальщику
2. Задача: Управление библиотекой
3. mix-blend-mode
Лучшие фронтенд вакансии @job_webdev:
1. Junior React Developer
2. HTML-верстальщик
3. Frontend разработчик
Лучшие дизайн вакансии @job_webdesign:
1. Web-дизайнер
2. UX/UI дизайнер
3. Графический дизайнер
#лучшеезанеделю
👍2😍1
console.log( [1, 2] == [1, 2] )
console.log( [1, 2] === [1, 2] )
console.log( [1, 2] === [1, 2] )
Anonymous Quiz
30%
true, false
22%
false, false
11%
false, true
32%
true, true
6%
Посмотреть ответы
👏3🔥1
Подборка лучших постов за прошлую неделю
Лучшие статьи @free_html_lessons:
1. Как работать с модулями в JavaScript: import/export
2. Как создать и использовать цветовую палитру в CSS
3. CSS счетчики
Лучшие фронтенд вакансии @job_webdev:
1. FullStack Разработчик Веб-Приложений в Telegram
2. Разработчик сайтов WordPress
3. HTML-Верстальщик
Лучшие дизайн вакансии @job_webdesign:
1. UI-UX дизайнер
2. Веб-дизайнер
3. Web-дизайнер
#лучшеезанеделю
Лучшие статьи @free_html_lessons:
1. Как работать с модулями в JavaScript: import/export
2. Как создать и использовать цветовую палитру в CSS
3. CSS счетчики
Лучшие фронтенд вакансии @job_webdev:
1. FullStack Разработчик Веб-Приложений в Telegram
2. Разработчик сайтов WordPress
3. HTML-Верстальщик
Лучшие дизайн вакансии @job_webdesign:
1. UI-UX дизайнер
2. Веб-дизайнер
3. Web-дизайнер
#лучшеезанеделю
👍2
Задача: Проверка на сбалансированные скобки
Описание
Напишите функцию, которая проверяет, являются ли все скобки в строке сбалансированными. Сбалансированные скобки означают, что каждая открывающая скобка имеет соответствующую закрывающую скобку того же типа, и скобки правильно вложены.
Пример
Указания
Функция должна поддерживать три типа скобок: круглые (), квадратные [] и фигурные {}.
Функция должна игнорировать все остальные символы в строке.
Строка может содержать любые символы, но интересуют только скобки.
Требования
Создайте функцию isBalanced с одним параметром — строкой, которую нужно проверить.
Функция должна вернуть true, если все скобки сбалансированы, и false в противном случае.
Объяснение
Создаём пустой массив stack для отслеживания открывающих скобок.
Создаём объект brackets, в котором ключи — это открывающие скобки, а значения — соответствующие закрывающие скобки.
Итерируемся по каждому символу строки.
Если символ является открывающей скобкой, добавляем соответствующую закрывающую скобку в стек.
Если символ является закрывающей скобкой, проверяем, совпадает ли он с последним элементом в стеке. Если нет, возвращаем false.
В конце возвращаем true, если стек пустой (все скобки были правильно закрыты), и false в противном случае.
#домашка
Описание
Напишите функцию, которая проверяет, являются ли все скобки в строке сбалансированными. Сбалансированные скобки означают, что каждая открывающая скобка имеет соответствующую закрывающую скобку того же типа, и скобки правильно вложены.
Пример
isBalanced("{[()]}") // true
isBalanced("{[(])}") // false
isBalanced("{[}") // false
Указания
Функция должна поддерживать три типа скобок: круглые (), квадратные [] и фигурные {}.
Функция должна игнорировать все остальные символы в строке.
Строка может содержать любые символы, но интересуют только скобки.
Требования
Создайте функцию isBalanced с одним параметром — строкой, которую нужно проверить.
Функция должна вернуть true, если все скобки сбалансированы, и false в противном случае.
// Примеры использования
console.log(isBalanced("{[()]}")); // true
console.log(isBalanced("{[(])}")); // false
console.log(isBalanced("{[}")); // false
Объяснение
Создаём пустой массив stack для отслеживания открывающих скобок.
Создаём объект brackets, в котором ключи — это открывающие скобки, а значения — соответствующие закрывающие скобки.
Итерируемся по каждому символу строки.
Если символ является открывающей скобкой, добавляем соответствующую закрывающую скобку в стек.
Если символ является закрывающей скобкой, проверяем, совпадает ли он с последним элементом в стеке. Если нет, возвращаем false.
В конце возвращаем true, если стек пустой (все скобки были правильно закрыты), и false в противном случае.
#домашка
👍1
Подборка лучших постов за прошлую неделю
Лучшие статьи @free_html_lessons:
1. Единицы измерения CSS
2. Обзор на веб-ресурсы
3. Кастомные css свойства
Лучшие фронтенд вакансии @job_webdev:
1. Верстальщик
2. Frontend разработчик
3. HTML-верстальщик
Лучшие дизайн вакансии @job_webdesign:
1. Дизайнер интерфейсов
2. Web-дизайнер
3. Продуктовый дизайнер
#лучшеезанеделю
Лучшие статьи @free_html_lessons:
1. Единицы измерения CSS
2. Обзор на веб-ресурсы
3. Кастомные css свойства
Лучшие фронтенд вакансии @job_webdev:
1. Верстальщик
2. Frontend разработчик
3. HTML-верстальщик
Лучшие дизайн вакансии @job_webdesign:
1. Дизайнер интерфейсов
2. Web-дизайнер
3. Продуктовый дизайнер
#лучшеезанеделю
👍1