Skip to content

Commit 36159eb

Browse files
homework_9
1 parent 2b27b19 commit 36159eb

File tree

2 files changed

+218
-0
lines changed

2 files changed

+218
-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 9</title>
6+
</head>
7+
<body>
8+
9+
<script src="src/main.js"></script>
10+
</body>
11+
</html>
Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
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 arrRequirements = this.requirements;
20+
if(this.skills) {
21+
let arrSkills = this.skills;
22+
arrRequirements.forEach(function(elem) {
23+
let initialElem = elem;
24+
let comparison = arrSkills.some(function(elem) {
25+
if(typeof elem == 'object') {
26+
for(let key in elem) {
27+
return elem[key] == initialElem
28+
};
29+
};
30+
return initialElem == elem;
31+
});
32+
if (comparison) {
33+
console.log( `required: ${elem} ...success`);
34+
} else {
35+
console.log( `required: ${elem} ...fail`);
36+
};
37+
});
38+
} else if(this.experience) {
39+
let arrExperience = this.experience;
40+
arrRequirements.forEach(function(elem) {
41+
let initialElem = elem;
42+
let comparison = arrExperience.some(function(elem) {
43+
if(typeof elem == 'object') {
44+
for(let key in elem) {
45+
return elem[key] == initialElem
46+
};
47+
};
48+
return initialElem == elem;
49+
});
50+
if (comparison) {
51+
console.log( `Task1---> required: ${elem} ...success`);
52+
} else {
53+
console.log( `Task1---> required: ${elem} ...fail`);
54+
};
55+
});
56+
};
57+
};
58+
59+
//developer1.goodDev();
60+
developer2.goodDev();
61+
62+
63+
//Task2
64+
let myObject = {
65+
database: [
66+
{ age: 100, name: 'b' },
67+
{ age: 15, name: 'c' },
68+
{ age: 25, name: 'a' }
69+
]
70+
};
71+
72+
myObject.myFilter = function(param) {
73+
let tmp = this.database.slice();
74+
let fnSort = function (arg1, arg2) {
75+
return arg1[param] > arg2[param];
76+
};
77+
return tmp.sort(fnSort);
78+
};
79+
80+
console.log('Task2--->', myObject.myFilter('age'));
81+
console.log('Task2--->', myObject.myFilter('name'));
82+
83+
myObject.myFilter2 = function(param) {
84+
let fnSort = function (arg1, arg2) {
85+
return arg1[param] > arg2[param];
86+
};
87+
return this.database.sort(fnSort);
88+
};
89+
90+
// {age:15, name:'c'}, {age:25, name:'a'} {age:100, name:'b'}
91+
console.log('Task2--->', myObject.myFilter2('age'));
92+
93+
// {age:25, name:a}, {age:100, name: b} ...
94+
//console.log('Task2--->', myObject.myFilter2('name'));
95+
96+
97+
//Task3
98+
//1
99+
let arr1 = [1, false, 2, 0, 3, null, 0, 4, 0, 25];
100+
let arr2 = ['a', 0, 0, 'b', null, 'c', 'd', 0, 1,
101+
false, 0, 1, 0, 3, [], 0, 1, 9, 0, 0, {}, 0, 0, 9];
102+
103+
let moveZeroToEnd = (arr) => {
104+
let arrayWithoutZeros = [];
105+
let arrZero = [];
106+
arr.forEach((elem) => {
107+
if(elem != 0) {
108+
arrayWithoutZeros.push(elem);
109+
};
110+
if (elem === 0) {
111+
arrZero.push(elem);
112+
};
113+
});
114+
let newArr = arrayWithoutZeros.concat(arrZero);
115+
return newArr;
116+
};
117+
118+
console.log('Task3---> Задание 1 --> нули в конце массива ', moveZeroToEnd(arr1));
119+
console.log('Task3---> Задание 1 --> нули в конце массива ', moveZeroToEnd(arr2));
120+
121+
let moveZeroToEnd2 = (arr) => {
122+
let arrZero = arr.filter((elem) => elem === 0);
123+
let arrayWithoutZeros = arr.filter((elem) => elem != 0);
124+
return arrayWithoutZeros.concat(arrZero);
125+
}
126+
console.log('Task3---> Задание 1 --> нули в конце массива ', moveZeroToEnd2(arr1));
127+
console.log('Task3---> Задание 1 --> нули в конце массива ', moveZeroToEnd2(arr2));
128+
129+
//2
130+
let arrayOfNumbers = [1,200,10,1,1,25,15];
131+
//let arrayOfNumbers = [10,20,30,1,31,11,10];
132+
//let arrayOfNumbers = [-1,0,25];
133+
//let arrayOfNumbers = [-4,-10,25,10];
134+
135+
let minNamber = (arr) => {
136+
let min = arr[0];
137+
arr.forEach((elem) => {
138+
if(elem < min) {
139+
min = elem;
140+
};
141+
});
142+
return min;
143+
};
144+
145+
let addTwoMin = (arr) => {
146+
let newArr2 = [];
147+
let firstNumber = minNamber(arr);
148+
let firstNumberIndex;
149+
for (let i = 0; i < arr.length; i++) {
150+
if (arr[i] === firstNumber) {
151+
firstNumberIndex = i;
152+
break;
153+
};
154+
};
155+
for (let i = 0; i < arr.length; i++) {
156+
if (i === firstNumberIndex) {
157+
continue;
158+
};
159+
newArr2.push(arr[i]);
160+
};
161+
let secondNumber = minNamber(newArr2);
162+
return firstNumber + secondNumber;
163+
};
164+
165+
console.log('Task3---> Задание 2 --> Сумма двух минимальных в массиве ',addTwoMin(arrayOfNumbers));
166+
167+
168+
//3
169+
let strNameShuffler ='Arnold Schwarzenegger';
170+
let nameShuffler = (str) => {
171+
let arrStr = str.split(' ');
172+
let arrStrReverse = arrStr.reverse();
173+
return arrStrReverse.join(' ');
174+
};
175+
console.log('Task3---> Задание 3', nameShuffler(strNameShuffler));
176+
177+
178+
//4
179+
let arrCapMe = ['jo', 'nelson', 'jurie'];
180+
//let arrCapMe = ['KARLY', 'DANIEL', 'KELSEY'];
181+
let capMe = (arr) => {
182+
let resArrCapMe = [];
183+
arr.forEach((elem) => {
184+
let elemArr = elem;
185+
let firstCapitalLetter = elemArr.charAt(0).toUpperCase();
186+
let theRestSmall = elemArr.slice(1, elemArr.length).toLowerCase();
187+
let concatVersion = firstCapitalLetter.concat(theRestSmall);
188+
resArrCapMe.push(concatVersion);
189+
});
190+
return resArrCapMe;
191+
};
192+
console.log('Task3---> Задание 4', capMe(arrCapMe));
193+
194+
//@SUPER 2
195+
let firstArray1 = [25,10,[10,[15]]];
196+
197+
let changeArr = (arr) => {
198+
if (Array.isArray(arr)) {
199+
return arr.reduce((done,curr) => {
200+
return done.concat(changeArr(curr));
201+
}, []);
202+
} else {
203+
return arr;
204+
};
205+
};
206+
207+
console.log('Task3--->', changeArr(firstArray1));

0 commit comments

Comments
 (0)