goit js hw 03
1.0.0
goit-js-hw-03リポジトリが作成されましたtask-номер_завдання.jsを含む別のファイルで作成されます。 <script type="module">を使用して、タスクコードを別のスコープで閉じ、識別子名の競合を回避します。 userオブジェクトの場合、順番に次のスクリプトを作成します。
moodフィールドを追加する'happy'hobby価値を'skydiving'に置き換えますfalseのpremium値を置き換えますключ:значенняで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" ) ) ; // []オブジェクトアレイと製品名( nameプロパティ値)を受信するcalculateTotalPrice(allProdcuts, productName)関数を書き込みます。製品の総コスト(価格 *数量)を返します。
関数を呼び出して、実装を確認します。
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 ) { } ,
} ;