Міжнародний Європейський Університет

ЗВІТИ З ЛАБОРАТОРНИХ РОБІТ

Дисципліна: "Програмування інтернет-застосувань"

Студентка: Добрякова Діана Олександрівна
Група: ІПЗ-23-301

Фото студента

Тема, мета та місце розташування сайту, звіту

Тема: ОБ'ЄКТ. МЕТОДИ ОБ'ЄКТА. МАСИВ ОБ'ЄКТІВ. CALLBACK. СТРІЛОЧНІ ФУНКЦІЇ. ОНЛАЙН КОНДИТЕРСЬКА.

Мета: Придбати практичні навички роботи з об'єктами, методами об'єкта, колбеками, стрілочними функціями та масивами об'єктів у JS-сценаріях на прикладі онлайн кондитерської.

Місце розташування:

  1. Репозиторій власного WEB-застосунку
  2. Жива сторінка WEB-застосунку
  3. Репозиторій звітного HTML-документа
  4. Жива сторінка звітного HTML-документа

Завдання №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);
            

Висновки

У ході виконання завдань я виконала роботу з об’єктами, масивами об’єктів, колбеками, класами та стрілочними функціями на прикладі онлайн кондитерської. Отримані знання можна застосовувати для реальних веб-застосунків з каталогами продуктів, кошиком замовлень та обробкою даних користувачів.