Тема, мета та місце розташування сайту, звіту
Тема: ОБ'ЄКТ. МЕТОДИ ОБ'ЄКТА. МАСИВ ОБ'ЄКТІВ. CALLBACK. СТРІЛОЧНІ ФУНКЦІЇ. ОНЛАЙН КОНДИТЕРСЬКА.
Мета: Придбати практичні навички роботи з об'єктами, методами об'єкта, колбеками, стрілочними функціями та масивами об'єктів у JS-сценаріях на прикладі онлайн кондитерської.
Місце розташування:
Завдання №1
function createProduct(obj, callback) {
const product = { id: Date.now(), ...obj };
callback(product);
}
function logProduct(product) {
console.log(product);
}
createProduct({ name: "Торт", price: 250, quantity: 2 }, logProduct);
createProduct({ name: "Пиріг", price: 150, quantity: 3 }, logProduct);
Завдання №2
const orders = [
{ product: "Торт", quantity: 2, price: 250 },
{ product: "Пиріг", quantity: 3, price: 150 },
{ product: "Кекс", quantity: 5, price: 50 },
];
// Обчислюємо загальну суму замовлення
const totalSum = orders.reduce((sum, order) => sum + order.price * order.quantity, 0);
console.log(totalSum);
Завдання №3
const products = [
{ name: "Торт", price: 250, category: "Торти" },
{ name: "Пиріг", price: 150, category: "Пироги" },
{ name: "Кекс", price: 50, category: "Кекси" },
];
// Фільтруємо продукти за ціною > 100
const expensive = products.filter(p => p.price > 100);
console.log(expensive);
Завдання №4
class Client {
#login;
#email;
constructor(login, email) {
this.#login = login;
this.#email = email;
}
get login() {
return this.#login;
}
set login(newLogin) {
this.#login = newLogin;
}
get email() {
return this.#email;
}
set email(newEmail) {
this.#email = newEmail;
}
}
const client1 = new Client("User1", "user1@gmail.com");
console.log(client1.login);
client1.login = "NewUser";
console.log(client1.login);
Завдання №5
const discountedProducts = products.map((p, i) => ({
id: i + 1,
name: p.name,
price: p.price * 0.9 // 10% знижка
}));
console.log(discountedProducts);
Висновки
У ході виконання завдань я виконала роботу з об’єктами, масивами об’єктів, колбеками, класами та стрілочними функціями на прикладі онлайн кондитерської. Отримані знання можна застосовувати для реальних веб-застосунків з каталогами продуктів, кошиком замовлень та обробкою даних користувачів.