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