Skip to content

Commit 1c40ec5

Browse files
authored
Merge pull request #13 from EasyCode-JavaScriptReact-v1/homework_11
Homework 11
2 parents 2b27b19 + dcf26e7 commit 1c40ec5

File tree

6 files changed

+344
-0
lines changed

6 files changed

+344
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Home work 10</title>
6+
</head>
7+
<body>
8+
9+
<script src="src/main.js"></script>
10+
</body>
11+
</html>
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
//Task0
2+
let y = 5; //объявлена глобальная переменная 'y' со значением 5
3+
let x = () => y; //объявлена стрелочная функция 'x' без аргументов которая возвращает 'y', тоесть 5
4+
5+
let z = t => { //объявлена стрелочная функция 'z' с аргументом 't'
6+
let y = 5; //oбъявлена локальная переменная 'y' со значением 5
7+
t(); // 't' это колбек функция которую вызвали
8+
};
9+
console.log(y); //выводит в консоль глобальную переменную 'y' объявленую в 2 строке, соответственно выведет 5
10+
11+
z(x); // что вернет //вызываем функцию 'z' с параметром 'x' который является функцией и возвращает глобальную переменную 'y'. Сама функция ничего не возвращает. Результатом будет undefined
12+
13+
14+
//Task1
15+
let $ = function(str) {
16+
return `<${str}></${str}>`;
17+
};
18+
19+
let createBODY = $('body');
20+
let createDIV = $('div');
21+
console.log('Task1 --->', createBODY); // <body></body>
22+
console.log('Task1 --->', createDIV); // <div></div>
23+
24+
25+
26+
// //Task2
27+
// let ezjQuery = {
28+
// strTag: '',
29+
// add(str) {
30+
// return this.strTag = this.strTag + `<${str}></${str}>`;
31+
// }
32+
// };
33+
34+
35+
// console.log('Task2 --->', ezjQuery.add('body')); // <body></body>
36+
// console.log('Task2 --->', ezjQuery.add('div')); // <body></body><div></div>
37+
// console.log('Task2 --->', ezjQuery.add('h1')); // <body></body><div></div><h1></h1>
38+
39+
40+
41+
//Task3
42+
let ezjQuery = {
43+
//strTag: '',
44+
tags: [],
45+
add(str, text) {
46+
this.tags.push({tagName: str, text: text || ''});
47+
return this;
48+
//return this.strTag = this.strTag + `<${str}></${str}>`;
49+
},
50+
render() {
51+
let strTag = '';
52+
for(let i = 0; i < this.tags.length; i++) {
53+
if(this.tags[i].text == '') {
54+
strTag += `<${this.tags[i].tagName}>`;
55+
} else {
56+
strTag += `<${this.tags[i].tagName}>${this.tags[i].text}`;
57+
};
58+
};
59+
for(let i = this.tags.length - 1; i >= 0; i--) {
60+
strTag += `</${this.tags[i].tagName}>`;
61+
};
62+
this.tags = [];
63+
return strTag;
64+
}
65+
};
66+
67+
let helloList = ezjQuery
68+
.add('body') // <body></body>
69+
.add('div') // <body><div></div></body>
70+
.add('ul') // <body><div><ul></ul></div></body>
71+
.add('li', 'Hello') //<body><div><ul><li>Hello</li></ul></div></body>
72+
.render();
73+
console.log('Task3 --->', helloList); // <body><div><ul><li>Hello</li></ul></div></body>
74+
document.write(helloList)
75+
// Обратите внимание, что после вызова render создание строки началось сначала
76+
77+
let bodyDiv = ezjQuery
78+
.add('body') //<body></body>
79+
.add('div') //<body><div></div></body>
80+
.render();
81+
console.log('Task3 --->', bodyDiv); //<body><div></div></body>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Home work 11</title>
6+
</head>
7+
<body>
8+
9+
<script src="src/main.js"></script>
10+
</body>
11+
</html>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
let user = {
2+
userName: 'userName'
3+
};
4+
5+
let admin = {
6+
emailAdmin: '[email protected]'
7+
};
8+
9+
let guest = {
10+
guestName: 'guestName'
11+
};
12+
13+
let database = {
14+
passwordDatabase: 'password-database',
15+
informationAboutUsers: [],
16+
registerGuest(obj) {
17+
this.informationAboutUsers.push(obj);
18+
}
19+
};
20+
21+
user.__proto__ = admin;
22+
console.log(user.emailAdmin);
23+
24+
admin.__proto__ = database;
25+
console.log(admin.passwordDatabase);
26+
27+
guest.__proto__ = user;
28+
29+
database.registerGuest(guest);
30+
database.registerGuest(guest);
31+
32+
console.log(guest.informationAboutUsers);
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Home work 9</title>
6+
</head>
7+
<body>
8+
9+
<script src="src/main.js"></script>
10+
</body>
11+
</html>
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
//Task1
2+
let developer1 = {
3+
skills: ['JavaScript', 'linux', 'html', 'OOP', 'Node.js'],
4+
requirements: ['Node.js', 'JavaScript', 'OOP'],
5+
goodDev: goodDev
6+
};
7+
let developer2 = {
8+
experience: [
9+
{ technology: 'java' },
10+
{ technology: 'c++' },
11+
{ technology: 'aws' },
12+
{ technology: 'docker' }
13+
],
14+
requirements: ['java', 'json', 'c++', 'JavaScript'],
15+
goodDev: goodDev
16+
};
17+
18+
function goodDev (dev) {
19+
let developerRequirements = this.requirements;
20+
if(this.skills) {
21+
let developerSkills = this.skills;
22+
developerRequirements.forEach((initialElem) => {
23+
let comparison = developerSkills.some((developerSkills) => {
24+
for(let key in developerSkills) {
25+
return developerSkills == initialElem
26+
};
27+
return initialElem == developerSkills;
28+
});
29+
if (comparison) {
30+
console.log( `required: ${initialElem} ...success`);
31+
} else {
32+
console.log( `required: ${initialElem} ...fail`);
33+
};
34+
});
35+
} else if(this.experience) {
36+
let developerExperience = this.experience;
37+
developerRequirements.forEach((initialElem) => {
38+
let comparison = developerExperience.some((developerExperience) => {
39+
for(let key in developerExperience) {
40+
return developerExperience[key] == initialElem;
41+
};
42+
return initialElem == developerExperience;
43+
});
44+
if (comparison) {
45+
console.log( `Task1---> required: ${initialElem} ...success`);
46+
} else {
47+
console.log( `Task1---> required: ${initialElem} ...fail`);
48+
};
49+
});
50+
};
51+
};
52+
53+
developer1.goodDev();
54+
developer2.goodDev();
55+
56+
57+
//Task2
58+
let myObject = {
59+
database: [
60+
{ age: 100, name: 'b' },
61+
{ age: 15, name: 'c' },
62+
{ age: 25, name: 'a' }
63+
]
64+
};
65+
66+
myObject.myFilter = function(param) {
67+
let tmp = [...this.database];
68+
let fnSort = function (arg1, arg2) {
69+
return arg1[param] > arg2[param];
70+
};
71+
return tmp.sort(fnSort);
72+
};
73+
74+
console.log('Task2--->', myObject.myFilter('age'));
75+
console.log('Task2--->', myObject.myFilter('name'));
76+
77+
myObject.myFilter2 = function(param) {
78+
let fnSort = function (arg1, arg2) {
79+
return arg1[param] > arg2[param];
80+
};
81+
return this.database.sort(fnSort);
82+
};
83+
84+
// {age:15, name:'c'}, {age:25, name:'a'} {age:100, name:'b'}
85+
console.log('Task2--->', myObject.myFilter2('age'));
86+
87+
// {age:25, name:a}, {age:100, name: b} ...
88+
//console.log('Task2--->', myObject.myFilter2('name'));
89+
90+
91+
//Task3
92+
//1
93+
let arr1 = [1, false, 2, 0, 3, null, 0, 4, 0, 25];
94+
let arr2 = ['a', 0, 0, 'b', null, 'c', 'd', 0, 1,
95+
false, 0, 1, 0, 3, [], 0, 1, 9, 0, 0, {}, 0, 0, 9];
96+
97+
let moveZeroToEnd = (arr) => {
98+
let arrayWithoutZeros = [];
99+
let arrZero = [];
100+
arr.forEach((elem) => {
101+
if(elem != 0) {
102+
arrayWithoutZeros.push(elem);
103+
};
104+
if (elem === 0) {
105+
arrZero.push(elem);
106+
};
107+
});
108+
let newArr = arrayWithoutZeros.concat(arrZero);
109+
return newArr;
110+
};
111+
112+
console.log('Task3---> Задание 1 --> нули в конце массива ', moveZeroToEnd(arr1));
113+
console.log('Task3---> Задание 1 --> нули в конце массива ', moveZeroToEnd(arr2));
114+
115+
let moveZeroToEnd2 = (arr) => {
116+
return arr.filter((elem) => elem != 0).concat(arr.filter((elem) => elem === 0));
117+
};
118+
console.log('Task3---> Задание 1 --> нули в конце массива ', moveZeroToEnd2(arr1));
119+
console.log('Task3---> Задание 1 --> нули в конце массива ', moveZeroToEnd2(arr2));
120+
121+
//2
122+
let arrayOfNumbers = [1,200,10,1,1,25,15];
123+
//let arrayOfNumbers = [10,20,30,1,31,11,10];
124+
//let arrayOfNumbers = [-1,0,25];
125+
//let arrayOfNumbers = [-4,-10,25,10];
126+
127+
let minNamber = (arr) => {
128+
let min = arr[0];
129+
arr.forEach((elem) => {
130+
if(elem < min) {
131+
min = elem;
132+
};
133+
});
134+
return min;
135+
};
136+
137+
let addTwoMin = (arr) => {
138+
let newArr2 = [];
139+
let firstNumber = minNamber(arr);
140+
let firstNumberIndex;
141+
for (let i = 0; i < arr.length; i++) {
142+
if (arr[i] === firstNumber) {
143+
firstNumberIndex = i;
144+
break;
145+
};
146+
};
147+
for (let i = 0; i < arr.length; i++) {
148+
if (i === firstNumberIndex) {
149+
continue;
150+
};
151+
newArr2.push(arr[i]);
152+
};
153+
let secondNumber = minNamber(newArr2);
154+
return firstNumber + secondNumber;
155+
};
156+
157+
console.log('Task3---> Задание 2 --> Сумма двух минимальных в массиве ',addTwoMin(arrayOfNumbers));
158+
159+
160+
//3
161+
let strNameShuffler ='Arnold Schwarzenegger';
162+
let nameShuffler = (str) => {
163+
let arrStr = str.split(' ');
164+
let arrStrReverse = arrStr.reverse();
165+
return arrStrReverse.join(' ');
166+
};
167+
console.log('Task3---> Задание 3', nameShuffler(strNameShuffler));
168+
169+
170+
//4
171+
//let arrCapMe = ['jo', 'nelson', 'jurie'];
172+
let arrCapMe = ['KARLY', 'DANIEL', 'KELSEY'];
173+
let capMe = (arr) => {
174+
let resArrCapMe = arr.map((elem) =>{
175+
let elemArr = elem;
176+
let firstCapitalLetter = elemArr.charAt(0).toUpperCase();
177+
let theRestSmall = elemArr.slice(1, elemArr.length).toLowerCase();
178+
let concatVersion = firstCapitalLetter.concat(theRestSmall);
179+
return concatVersion;
180+
});
181+
return resArrCapMe;
182+
};
183+
console.log('Task3---> Задание 4', capMe(arrCapMe));
184+
185+
//@SUPER 2
186+
let firstArray1 = [25,10,[10,[15]]];
187+
188+
let changeArr = (arr) => {
189+
if (Array.isArray(arr)) {
190+
return arr.reduce((done,curr) => {
191+
return done.concat(changeArr(curr));
192+
}, []);
193+
} else {
194+
return arr;
195+
};
196+
};
197+
198+
console.log('Task3--->', changeArr(firstArray1));

0 commit comments

Comments
 (0)