11//Task1
22function add ( arg1 ) {
3- let value1 = arg1 ;
43 return function ( arg2 ) {
5- let value2 = arg2 ;
64 return function ( arg3 ) {
7- let value3 = arg3 ;
8- return value1 = value1 + value2 + value3 ;
5+ return arg1 = arg1 + arg2 + arg3 ;
96 } ;
107 } ;
118} ;
@@ -109,4 +106,118 @@ console.log('Super ', jun2.addCounter(3, methodName));
109106console . log ( 'Super ' , jun2 . logger ( 1 , 2 , 3 , 4 ) ) ;
110107console . log ( 'Super ' , jun2 . logger ( 1 , 2 , 3 , 4 ) ) ;
111108console . log ( 'Super ' , jun2 . logger ( 1 , 2 , 3 , 4 ) ) ;
112- console . log ( 'Super ' , jun2 . logger ( 1 , 2 , 3 , 4 ) ) ;
109+ console . log ( 'Super ' , jun2 . logger ( 1 , 2 , 3 , 4 ) ) ;
110+
111+ //Задачи:
112+
113+ function factorial ( n ) {
114+ if ( n > 1 ) {
115+ return n * factorial ( n - 1 ) ;
116+ } ;
117+ return n
118+ } ;
119+ console . log ( factorial ( 5 ) ) ;
120+
121+
122+ function sumToRecursion ( n ) {
123+ if ( n > 1 ) {
124+ return n + factorial ( n - 1 ) ;
125+ } ;
126+ return n ;
127+ } ;
128+ console . log ( sumToRecursion ( 4 ) ) ;
129+
130+
131+
132+ function sumToCycle ( n ) {
133+ let k = n ;
134+ for ( let i = 1 ; i < k ; i ++ ) {
135+ n = n + ( k - i ) ;
136+ } ;
137+ return n ;
138+ } ;
139+ console . log ( sumToCycle ( 4 ) ) ;
140+
141+
142+
143+ function sum ( arg1 ) {
144+ return function ( arg2 ) {
145+ return arg1 + arg2 ;
146+ } ;
147+ } ;
148+ console . log ( sum ( 5 ) ( - 1 ) ) ;
149+
150+
151+
152+ function makeBuffer ( ) {
153+ let buffer = '' ;
154+ return function ( value ) {
155+ if ( value == undefined ) {
156+ return buffer ;
157+ } ;
158+ return buffer = buffer + value ;
159+ } ;
160+ } ;
161+ let buffer = makeBuffer ( ) ;
162+ console . log ( buffer ( 1 ) ) ;
163+ console . log ( buffer ( 2 ) ) ;
164+ console . log ( buffer ( 3 ) ) ;
165+ console . log ( buffer ( ) ) ;
166+
167+
168+
169+
170+ function makeBuffer2 ( ) {
171+ let buff = '' ;
172+ function buffer2 ( value ) {
173+ if ( value == undefined ) {
174+ return buff ;
175+ } ;
176+ return buff = buff + value ;
177+ } ;
178+ buffer2 . clear = function ( ) {
179+ buff = '' ;
180+ } ;
181+ return buffer2 ;
182+ } ;
183+ let buffer2 = makeBuffer2 ( ) ;
184+
185+ buffer2 ( "Тест" ) ;
186+ buffer2 ( " тебя не съест " ) ;
187+ console . log ( buffer2 ( ) ) ; // Тест тебя не съест
188+
189+ buffer2 . clear ( ) ;
190+ console . log ( buffer2 ( ) ) ;
191+
192+
193+
194+
195+ let users = [ {
196+ name : "Вася" ,
197+ surname : 'Иванов' ,
198+ age : 20
199+ } , {
200+ name : "Петя" ,
201+ surname : 'Чапаев' ,
202+ age : 25
203+ } , {
204+ name : "Маша" ,
205+ surname : 'Медведева' ,
206+ age : 18
207+ } ] ;
208+
209+ function byField ( field ) {
210+ return function ( a , b ) {
211+ return a [ field ] > b [ field ] ? 1 : - 1 ;
212+ } ;
213+ } ;
214+
215+ users . sort ( byField ( 'name' ) ) ;
216+ users . forEach ( function ( user ) {
217+ console . log ( user . name ) ;
218+ } ) ; // Вася, Маша, Петя
219+
220+ users . sort ( byField ( 'age' ) ) ;
221+ users . forEach ( function ( user ) {
222+ console . log ( user . name ) ;
223+ } ) ; // Маша, Вася, Петя
0 commit comments