ДЗ №3
Дедлайн 09.11.2025 в 20:59
Описание домашнего задания
Практикуем синтаксис JS. Чтобы посмотреть
console.log()'ивнутри файлаindex.js, вставляем путь до него в теге<head>:
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Сайт-визитка</title>
<link rel="stylesheet" href="./index.css" />
<script src="./index.js" defer></script>
</head>Задаем вопросы гуглу, чат-боту, или менторам в группе
Регистрируемся на сайте LeetCode, там вам предстоит провести следующее занятие (и не только...)
> Рекомендуем практиковаться понемногу, но регулярно
А еще парочку задач, для закрепления материалла, можете их оформит как в одном, так и в разных файлах в своих репозиотриях.
Задача 1: "Калькулятор оценок"
Условие:
Напишите функцию calculateGrade, которая принимает массив объектов students (каждый объект представляет студента с полями name (строка) и scores (массив чисел)) и возвращает массив объектов с добавленным полем average (средний балл) и grade (оценка по правилам):
- Средний балл >= 90: "A"
- Средний балл >= 80: "B"
- Средний балл >= 70: "C"
- Средний балл < 70: "F"
Требования:
1. Используйте for...of для перебора массива.
2. Для расчета среднего балла используйте цикл for.
3. Используйте условные операторы if...else или switch).
4. Все переменные объявляйте через constlet.
Пример вызова:
const students = [
{ name: "Алексей", scores: [85, 92, 78] },
{ name: "Мария", scores: [95, 87, 92] }
];
console.log(calculateGrade(students));
/*
Ожидаемый результат:
[
{ name: "Алексей", scores: [85,92,78], average: 85, grade: "B" },
{ name: "Мария", scores: [95,87,92], average: 91.33, grade: "A" }
]
*/Задача 2: "Фильтр товаров"
Условие:
Создайте функцию filterProducts, которая принимает массив объектов products (каждый объект — товар с полями name, price, category) и объект filters с опциональными полями maxPrice (максимальная цена) и category (категория). Функция должна вернуть новый массив товаров, удовлетворяющих фильтрам.
Требования:
1. Используйте метод массивов for или for...of.
2. Проверьте наличие каждого фильтра через условие if).
3. Для объединения фильтров используйте логические операторы.
4. Учтите случай, когда фильтры не переданы (вернуть все товары).
5. Используйте constlet и стрелочную функцию.
Пример вызова:
const products = [
{ name: "Ноутбук", price: 50000, category: "электроника" },
{ name: "Стул", price: 5000, category: "мебель" },
{ name: "Кофеварка", price: 15000, category: "электроника" }
];
const filters = { maxPrice: 20000, category: "электроника" };
console.log(filterProducts(products, filters));
// Ожидаемый результат: [{ name: "Кофеварка", price: 15000, category: "электроника" }]