Читать на других языках: Русский, Українська.
- Создан репозиторий
goit-js-hw-03
- При сдаче домашней работы есть ссылка на исходные файлы в репозитории
- Каждое задание выполнено в отдельном файле с именем
task-номер_задания.js
. Используй<script type="module">
чтобы закрыть код задания в отдельной области видимости и избежать конфликтов имен идентификаторов. - Имена переменных и функций понятные, описательные
- Код отформатирован с помощью Prettier
Напиши скрипт, который, для объекта user
, последовательно:
- добавляет поле
mood
со значением'happy'
- заменяет значение
hobby
на'skydiving'
- заменяет значение
premium
наfalse
- выводит содержимое объекта
user
в форматеключ:значение
используяObject.keys()
иfor...of
const user = {
name: 'Mango',
age: 20,
hobby: 'html',
premium: true,
};
Напиши функцию countProps(obj)
, считающую кол-во свойств в объекте. Функция
возвращает число - количество свойств.
const countProps = function(obj) {
// твой код
};
/*
* Вызовы функции для проверки работоспособности твоей реализации.
*/
console.log(countProps({})); // 0
console.log(countProps({ name: 'Mango', age: 2 })); // 2
console.log(countProps({ mail: '[email protected]', isOnline: true, score: 500 })); // 3
Напиши функцию findBestEmployee(employees)
, которая принимает объект
сотрудников и возвращает имя самого продуктивного (который выполнил больше всех
задач). Сотрудники и кол-во выполненых задач содержатся как свойства объекта в
формате "имя":"кол-во задач"
.
const findBestEmployee = function(employees) {
// твой код
};
/*
* Вызовы функции для проверки работоспособности твоей реализации.
*/
console.log(
findBestEmployee({
ann: 29,
david: 35,
helen: 1,
lorence: 99,
}),
); // lorence
console.log(
findBestEmployee({
poly: 12,
mango: 17,
ajax: 4,
}),
); // mango
console.log(
findBestEmployee({
lux: 147,
david: 21,
kiwi: 19,
chelsy: 38,
}),
); // lux
Напиши функцию countTotalSalary(employees)
принимающую объект зарплат. Функция
считает общую сумму запрплаты работников и возращает ее. Каждое поле объекта,
передаваемого в функцию, имеет вид "имя":"зарплата"
.
const countTotalSalary = function(employees) {
// твой код
};
/*
* Вызовы функции для проверки работоспособности твоей реализации.
*/
console.log(countTotalSalary({})); // 0
console.log(
countTotalSalary({
mango: 100,
poly: 150,
alfred: 80,
}),
); // 330
console.log(
countTotalSalary({
kiwi: 200,
lux: 50,
chelsy: 150,
}),
); // 400
Напиши функцию getAllPropValues(arr, prop)
, которая получает массив объектов и
имя свойства. Возвращает массив значений определенного свойства prop
из
каждого объекта в массиве.
const products = [
{ name: 'Радар', price: 1300, quantity: 4 },
{ name: 'Сканер', price: 2700, quantity: 3 },
{ name: 'Дроид', price: 400, quantity: 7 },
{ name: 'Захват', price: 1200, quantity: 2 },
];
const getAllPropValues = function(arr, prop) {
// твой код
};
/*
* Вызовы функции для проверки работоспособности твоей реализации.
*/
console.log(getAllPropValues(products, 'name')); // ['Радар', 'Сканер', 'Дроид', 'Захват']
console.log(getAllPropValues(products, 'quantity')); // [4, 3, 7, 2]
console.log(getAllPropValues(products, 'category')); // []
Напиши функцию calculateTotalPrice(allProdcuts, productName)
, которая получает
массив объектов и имя продукта (значение свойства name
). Возвращает общую
стоимость продукта (цена * количество).
Вызовы функции для проверки работоспособности твоей реализации.
const products = [
{ name: 'Радар', price: 1300, quantity: 4 },
{ name: 'Сканер', price: 2700, quantity: 3 },
{ name: 'Дроид', price: 400, quantity: 7 },
{ name: 'Захват', price: 1200, quantity: 2 },
];
const calculateTotalPrice = function(allProdcuts, productName) {
// твой код
};
/*
* Вызовы функции для проверки работоспособности твоей реализации.
*/
console.log(calculateTotalPrice(products, 'Радар')); // 5200
console.log(calculateTotalPrice(products, 'Дроид')); // 2800
Напиши скрипт управления личным кабинетом интернет банка. Есть объект account
в котором необходимо реализовать методы для работы с балансом и историей
транзакций.
/*
* Типов транзацкий всего два.
* Можно положить либо снять деньги со счета.
*/
const Transaction = {
DEPOSIT: 'deposit',
WITHDRAW: 'withdraw',
};
/*
* Каждая транзакция это объект со свойствами: id, type и amount
*/
const account = {
// Текущий баланс счета
balance: 0,
// История транзакций
transactions: [],
/*
* Метод создает и возвращает объект транзакции.
* Принимает сумму и тип транзакции.
*/
createTransaction(amount, type) {},
/*
* Метод отвечающий за добавление суммы к балансу.
* Принимает сумму танзакции.
* Вызывает createTransaction для создания объекта транзакции
* после чего добавляет его в историю транзакций
*/
deposit(amount) {},
/*
* Метод отвечающий за снятие суммы с баланса.
* Принимает сумму танзакции.
* Вызывает createTransaction для создания объекта транзакции
* после чего добавляет его в историю транзакций.
*
* Если amount больше чем текущий баланс, выводи сообщение
* о том, что снятие такой суммы не возможно, недостаточно средств.
*/
withdraw(amount) {},
/*
* Метод возвращает текущий баланс
*/
getBalance() {},
/*
* Метод ищет и возвращает объект транзации по id
*/
getTransactionDetails(id) {},
/*
* Метод возвращает количество средств
* определенного типа транзакции из всей истории транзакций
*/
getTransactionTotal(type) {},
};