Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hw 4 #4

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions task_4/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>task4</title>
</head>
<body>
<header></header>
<main></main>
<footer></footer>
<script src="js/main.js" defer></script>
</body>
</html>
67 changes: 67 additions & 0 deletions task_4/js/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
"use strict"
// Написать функцию bindFunc, которая принимает в себя 2 + аргументов (Точно должна принять 2 аргумента, а дальше сколько угодно).
// 1 аргумент - какая-то функция
// 2 аргумент - значение контекста
// 3 + ... аргументы - любое кол-во аргументов
// Эта функция, должна устанавливать контекст для функции, которая в первом аргументе, и возвращать эту функцию с новым контекстом.
// Сам контекст, который мы хотим установить, находиться во втором аргументе
const bindFunc = (fn, context, ...args) => {
return fn.apply(context, [...args]);
}

const obj = {
name: "Vlad",
age: 32,
}

function getAge(){
return this.age;
}

const bindAge = bindFunc(getAge, obj);
console.log(bindAge);

// Написать функцию, которая не принимает никаких аргументов. В теле функции написать логику для нахождения суммы значений любого количества ключей (значения ключей должны быть больше нуля) из переданного контекста.
function sumKeys(){
const valueObj = Object.values(this);
const filterObj = valueObj.filter(el => el != 0 && typeof el === 'number');
const sumObj = filterObj.reduce((acc, item) => acc + item);
return sumObj;
}

const objectA = {
a: 1,
b: 2,
c: 3,
}

const sum = sumKeys.bind(objectA);
console.log(sum());
// Написать функцию, которая возвращает новый массив, в котором должны быть только четные числа, которые больше двуx и меньше 10. Новый массив будет состоять из значений ключа values из контекста, если такого ключа нет, то выводим сообщение "Не найдено".

function getNewArray(){
if(!this.values){
return `Не найдено`;
}

const valueArr = this.values;
const filterArr = valueArr.filter(el => {
return typeof el === 'number' && el % 2 === 0;
});

const modifiedArr = filterArr.filter(el => {
return el > 2 && el < 10;
});

const newArr = [...modifiedArr];
return newArr;
}

const valObject0 = {
values: [1, '2', 4, 8, '8', 3, 10, null, false],
};

const result = getNewArray.bind(valObject0);
console.log(result());