Skip to content

Commit 64d7900

Browse files
authored
Merge pull request #6 from EasyCode-JavaScriptReact-v1/homework_5
homework-5
2 parents e92d431 + b2ac0b5 commit 64d7900

File tree

2 files changed

+175
-0
lines changed

2 files changed

+175
-0
lines changed
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: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
/*
2+
1. Переместите 0 в конец массива, остальные числа должны остаться
3+
неизменными
4+
// concat
5+
example:
6+
[1,false,2,0,3,null,0,4,0,25] => [1, false, 2, 3, null, 4, 25, 0, 0, 0]
7+
[ 'a', 0, 0, 'b', null, 'c', 'd', 0, 1, false, 0, 1, 0, 3, [], 0, 1, 9, 0, 0, {}, 0, 0, 9 ] => ["a","b",null,"c","d",1,false,1,3,[],1,9,{},9,0,0,0,0,0,0,0,0,0,0]
8+
[ 0, 1, null, 2, false, 1, 0 ] => [1,null,2,false,1,0,0]
9+
*/
10+
let arr1 = [1, false, 2, 0, 3, null, 0, 4, 0, 25];
11+
let arr2 = [
12+
'a',
13+
0,
14+
0,
15+
'b',
16+
null,
17+
'c',
18+
'd',
19+
0,
20+
1,
21+
false,
22+
0,
23+
1,
24+
0,
25+
3,
26+
[],
27+
0,
28+
1,
29+
9,
30+
0,
31+
0,
32+
{},
33+
0,
34+
0,
35+
9
36+
];
37+
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);
47+
}
48+
return arrWithnumber.concat(newArr);
49+
}
50+
console.log(moveZeroToEnd(arr1));
51+
console.log(moveZeroToEnd(arr2));
52+
/*
53+
2. Верните сумму двух найменьших чисел в массиве
54+
[10,20,30,1,31,11,10] => 11
55+
[-1,0,25] => -1
56+
[-4,-10,25,10] => -14
57+
[0,200,10,25,15] => 10
58+
*/
59+
60+
function minimalNumber(arr) {
61+
62+
arr = arr.sort(function compareNumeric(a, b) {
63+
if (a > b) return 1;
64+
if (a < b) return -1;
65+
}
66+
)
67+
let minNum1 = arr[0];
68+
let minNum2 = arr[1];
69+
return minNum1 + minNum2;
70+
}
71+
console.log(minimalNumber([10,20,30,1,31,11,10]));
72+
console.log(minimalNumber([-1,0,25]));
73+
console.log(minimalNumber([-4,-10,25,10]));
74+
console.log(minimalNumber([0,200,10,25,15]));
75+
76+
/*
77+
3. Напишите функцию которая меняет местами имя и фамилию
78+
nameShuffler('john McClane'); => "McClane john"
79+
nameShuffler('Arnold Schwarzenegger'); => "Schwarzenegger Arnold"
80+
nameShuffler('James Bond'); => "Bond James"
81+
*/
82+
83+
function nameShuffler(str) {
84+
let arr = str.split(' ');
85+
arr.reverse();
86+
let arrToStr = arr.join(' ');
87+
return arrToStr;
88+
}
89+
console.log(nameShuffler('James Bond'));
90+
console.log(nameShuffler('Arnold Schwarzenegger'));
91+
console.log(nameShuffler('john McClane'));
92+
93+
94+
/*
95+
// !
96+
4. Напишите функцию которая принимает массив с именами и возвращает массив
97+
в котором каждая буква становится заглавной
98+
capMe(['jo', 'nelson', 'jurie']) // returns ['Jo', 'Nelson', 'Jurie']
99+
capMe(['KARLY', 'DANIEL', 'KELSEY']) // returns ['Karly', 'Daniel', 'Kelsey']
100+
*/
101+
102+
function capMe(arr) {
103+
for(let i=0;i< arr.length ;i++){
104+
let elem = arr[i]
105+
elem = elem.toLowerCase()
106+
elem = elem.charAt(0).toUpperCase() + elem.slice(1);
107+
console.log(elem);
108+
}
109+
};
110+
capMe(['KARLY', 'DANIEL', 'KELSEY'])
111+
capMe(['jo', 'nelson', 'jurie'])
112+
113+
// @SUPER
114+
/*
115+
1. Найдите число отсутствующее в заданной последовательности
116+
example:
117+
[1,3,5,9] => 7 (9-1) / 4 == 2
118+
[0,8,16,32] => 24
119+
[4, 6, 8, 10] => 2 // число сначала
120+
[0,16,24,32] => 8
121+
*/
122+
123+
function random(arr) {
124+
let lastElem = arr[arr.length - 1];
125+
let firstElem = arr[0];
126+
let step = (lastElem - firstElem)/arr.length;
127+
for(let i = 0;i<arr.length;i++){
128+
let elem = arr[i];
129+
let nextElem = arr[i+1];
130+
if(nextElem){
131+
return lastElem - arr[arr.length -2];
132+
}
133+
if(elem + step != nextElem){
134+
return elem + step
135+
}
136+
}
137+
return
138+
}
139+
140+
console.log(random([1, 3, 5, 9]));
141+
console.log(random([0, 8, 16, 32]));
142+
console.log(random(([0, 16, 24, 32])));
143+
console.log(random([4, 6, 8, 10]));
144+
145+
/*
146+
Задача с собеседований*
147+
2. Напишите функция которая преобразовывает/открывает скобки всех
148+
вложенных внутри массивов
149+
Необходимо реализовать рекурсивный фызов функции.
150+
Функция должна открывать любое количество внутренних массивов
151+
example:
152+
[[1,2],[3,[4]],5, 10] => [1,2,3,4,5,10]
153+
[25,10,[10,[15]]] => [25,10,10,15]
154+
*/
155+
156+
function openBraces(arr) {
157+
if(Array.isArray(arr)){
158+
return arr.reduce(function(result, current){
159+
return result.concat(openBraces(current))
160+
}, [])
161+
}
162+
return arr
163+
};
164+
console.log(openBraces([25,10,[10,[15]]]));
165+
console.log(openBraces([[1,2],[3,[4]],5, 10]));

0 commit comments

Comments
 (0)