Skip to content

Commit 363ab78

Browse files
homework-9
1 parent 66587dc commit 363ab78

File tree

4 files changed

+189
-24
lines changed

4 files changed

+189
-24
lines changed

js-core/homeworks/homework-5/src/main.js

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,19 @@ let arr2 = [
3535
9
3636
];
3737
function moveZeroToEnd(arr) {
38-
let newArr = [];
39-
let arrWithnumber = [];
40-
for(let i=0;i<arr.length;i++){
41-
let index = arr[i];
42-
if(index===0){
43-
newArr.push(index);
44-
continue
45-
}
46-
arrWithnumber.push(index);
38+
let zeroArray = []
39+
let newArray = []
40+
arr.forEach(elem=>{
41+
if(typeof elem == 'number' && elem == 0){
42+
zeroArray.push(elem)
43+
}
44+
else{
45+
newArray.push(elem)
4746
}
48-
return arrWithnumber.concat(newArr);
47+
})
48+
return newArray.concat(zeroArray)
4949
}
50+
5051
console.log(moveZeroToEnd(arr1));
5152
console.log(moveZeroToEnd(arr2));
5253
/*
@@ -59,11 +60,7 @@ console.log(moveZeroToEnd(arr2));
5960

6061
function minimalNumber(arr) {
6162

62-
arr = arr.sort(function compareNumeric(a, b) {
63-
if (a > b) return 1;
64-
if (a < b) return -1;
65-
}
66-
)
63+
arr = arr.sort((a, b) => a > b)
6764
let minNum1 = arr[0];
6865
let minNum2 = arr[1];
6966
return minNum1 + minNum2;
@@ -80,7 +77,7 @@ console.log(minimalNumber([0,200,10,25,15]));
8077
nameShuffler('James Bond'); => "Bond James"
8178
*/
8279

83-
function nameShuffler(str) {
80+
let nameShuffler = str => {
8481
let arr = str.split(' ');
8582
arr.reverse();
8683
let arrToStr = arr.join(' ');
@@ -100,12 +97,17 @@ console.log(nameShuffler('john McClane'));
10097
*/
10198

10299
function capMe(arr) {
103-
for(let i=0;i< arr.length ;i++){
104-
let elem = arr[i]
100+
// for(let i=0;i< arr.length ;i++){
101+
// let elem = arr[i]
102+
// elem = elem.toLowerCase()
103+
// elem = elem.charAt(0).toUpperCase() + elem.slice(1);
104+
// console.log(elem);
105+
// }
106+
arr.forEach(elem =>{
105107
elem = elem.toLowerCase()
106108
elem = elem.charAt(0).toUpperCase() + elem.slice(1);
107-
console.log(elem);
108-
}
109+
console.log(elem)
110+
})
109111
};
110112
capMe(['KARLY', 'DANIEL', 'KELSEY'])
111113
capMe(['jo', 'nelson', 'jurie'])
@@ -120,7 +122,7 @@ capMe(['jo', 'nelson', 'jurie'])
120122
[0,16,24,32] => 8
121123
*/
122124

123-
function random(arr) {
125+
let random = arr => {
124126
let lastElem = arr[arr.length - 1];
125127
let firstElem = arr[0];
126128
let step = (lastElem - firstElem)/arr.length;
@@ -153,7 +155,7 @@ console.log(random([4, 6, 8, 10]));
153155
[25,10,[10,[15]]] => [25,10,10,15]
154156
*/
155157

156-
function openBraces(arr) {
158+
let openBraces = arr => {
157159
if(Array.isArray(arr)){
158160
return arr.reduce(function(result, current){
159161
return result.concat(openBraces(current))

js-core/homeworks/homework-8/src/main.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ function validBraces(str) {
5555
}
5656
}
5757

58-
return !stack.length;
58+
return stack.length == 0;
5959
}
6060

6161

@@ -82,7 +82,8 @@ console.log(validBraces('({[]})')); // => returns true
8282
* */
8383

8484
function sum(num) {
85-
if( num!= 1){
85+
sum.catchNum = 0
86+
if( num>1){
8687
return num + sum(num-1)
8788
}
8889
return 1
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!DOCTYPE html>
2+
<html lang="ru">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>test page</title>
6+
</head>
7+
<body>
8+
<script src="src/main.js"></script>
9+
</body>
10+
</html>
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
// Отобразите достаточно ли у developers навыков ?
2+
// Отобразите всех разработчиков и вызовете у каждого
3+
// разработчика метод goodDev --
4+
5+
/*
6+
* Количество требований к разработчику совпадает с его навыками.
7+
* Используйте в задаче this
8+
* */
9+
10+
let developer1 = {
11+
skills: ['JavaScript', 'linux', 'html', 'OOP', 'Node.js'],
12+
requirements: ['Node.js', 'JavaScript', 'OOP'],
13+
goodDev: goodDev
14+
};
15+
let developer2 = {
16+
experience: [
17+
{ technology: 'java' },
18+
{ technology: 'c++' },
19+
{ technology: 'aws' },
20+
{ technology: 'docker' }
21+
],
22+
requirements: ['java', 'json', 'c++', 'JavaScript'],
23+
goodDev: goodDev
24+
};
25+
26+
function goodDev() {
27+
if(this.skills){
28+
this.requirements.forEach(elem => {
29+
if(this.skills.indexOf(elem) == -1){
30+
console.log(`required ${elem} ... fail`)
31+
} else{
32+
console.log(`required ${elem} ... success`)
33+
}
34+
});
35+
}
36+
if(this.experience){
37+
let exp = this.experience
38+
let devSkills = exp.reduce((newValue, elem) => {
39+
return newValue.concat(Object.values(elem))
40+
}, [])
41+
this.requirements.forEach(elem => {
42+
if(devSkills.indexOf(elem) === -1){
43+
console.log(`required ${elem} ... fail`)
44+
}else {
45+
console.log(`required ${elem} ... success`)
46+
}
47+
})
48+
}
49+
}
50+
51+
console.log(developer1.goodDev())
52+
console.log(developer2.goodDev())
53+
54+
55+
// developer 1
56+
// required: Node.js ... success
57+
// required: JavaScript ... success
58+
// required: OOP ... success
59+
// ---
60+
61+
// developer 2
62+
// required: json ... fail
63+
// required: JavaScript ... success
64+
// required: Java ... success
65+
// required: OOP ... success
66+
67+
/*
68+
*
69+
* TASK 2
70+
*
71+
*
72+
* Напишите функцию принимает 1 аргумент сортирует объект по
73+
* переданному значению (например age или name)
74+
*
75+
* При вызове функции используйте this
76+
*
77+
* */
78+
79+
let myObject = {
80+
database: [
81+
{ age: 100, name: 'b' },
82+
{ age: 15, name: 'c' },
83+
{ age: 25, name: 'a' }
84+
]
85+
};
86+
87+
88+
myObject.myFilter = function(param) {
89+
let prop = [...this.database];
90+
return prop.sort((a, b) => a[param] > b[param])
91+
};
92+
93+
// {age:15, name:'c'}, {age:25, name:'a'} {age:100, name:'b'}
94+
console.log(myObject.myFilter('age'));
95+
96+
// {age:25, name:a}, {age:100, name: b} ...
97+
console.log(myObject.myFilter('name'));
98+
99+
100+
/*
101+
* TASK 3
102+
*
103+
* Перепишите homework 5 с использованием методов массивов и
104+
* => arrow functions
105+
*
106+
*/
107+
108+
// ////// @ TODO -- LVL Strong Junior
109+
110+
// /*
111+
// *
112+
// * TASK 1
113+
// * Напишите функцию которая принимает 3 аргумента:*
114+
// *
115+
// * - объект к которому привязывается метод
116+
// * - Имя свойства с которым связывается метод
117+
// * - Объявление привязываемого метода( функция )
118+
// *
119+
// * Если количество аргументов у функции fn совпадает с переданными
120+
// * параметрами тогда сохраняет метод в замыкании
121+
// * и привязывает функцию к методу объекта
122+
// *
123+
// * при вызове одного и того же метода с разным количеством аргументов,
124+
// * должно давать различный результат
125+
// *
126+
// * */
127+
128+
let junior = {};
129+
130+
// fn.length == arguments.length
131+
132+
function addMethod(object, name, fn) {
133+
134+
}
135+
136+
addMethod(junior, 'ok', function() {
137+
console.log('zero arguments');
138+
});
139+
addMethod(junior, 'ok', function(one) {
140+
console.log('one arguments');
141+
});
142+
addMethod(junior, 'ok', function(one, two) {
143+
console.log('two arguments');
144+
});
145+
addMethod(junior, 'ok', function(one, two, three) {
146+
console.log('three arguments');
147+
});
148+
149+
junior.ok(1, 2, 3); // 'three arguments'
150+
junior.ok(1, 2); // 'two arguments'
151+
junior.ok(1); //'one arguments'
152+
junior.ok(); //'zero arguments'

0 commit comments

Comments
 (0)