From 8a50a6dc2d1461ca342a6df72926523735b7e9f4 Mon Sep 17 00:00:00 2001 From: Sergey Melyukov Date: Mon, 27 Feb 2023 11:57:55 +0300 Subject: [PATCH 1/6] week-1 --- projects/functions/index.js | 75 +++++++++++++++++++++++++++++++ projects/functions/index.spec.js | 77 ++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 projects/functions/index.js create mode 100644 projects/functions/index.spec.js diff --git a/projects/functions/index.js b/projects/functions/index.js new file mode 100644 index 000000000..38ebca33b --- /dev/null +++ b/projects/functions/index.js @@ -0,0 +1,75 @@ +/* ДЗ 1 - Функции */ + +/* + Задание 1: + + 1.1: Добавьте к функции параметр с любым именем + 1.2: Функция должна возвращать аргумент, переданный в параметре + + Пример: + returnFirstArgument(10) вернет 10 + returnFirstArgument('привет') вернет `привет` + + Другими словами: функция должна возвращать в неизменном виде то, что поступает ей на вход + */ +function returnFirstArgument() {} + +/* + Задание 2: + + 2.1: Функция должна возвращать сумму переданных аргументов + + Пример: + sumWithDefaults(10, 20) вернет 30 + sumWithDefaults(2, 4) вернет 6 + + 2.2 *: Значение по умолчанию для второго аргумента должно быть равно 100 + + Пример: + sumWithDefaults(10) вернет 110 + */ +function sumWithDefaults() {} + +/* + Задание 3: + + Функция должна принимать другую функцию и возвращать результат вызова этой функции + + Пример: + returnFnResult(() => 'привет') вернет 'привет' + */ +function returnFnResult() {} + +/* + Задание 4: + + Функция должна принимать число и возвращать новую функцию (F) + При вызове функции F, переданное ранее число должно быть увеличено на единицу и возвращено из F + + Пример: + var f = returnCounter(10); + + console.log(f()); // выведет 11 + console.log(f()); // выведет 12 + console.log(f()); // выведет 13 + */ +function returnCounter() {} + +/* + Задание 5 *: + + Функция должна возвращать все переданные ей аргументы в виде массива + Количество переданных аргументов заранее неизвестно + + Пример: + returnArgumentsArray(1, 2, 3) вернет [1, 2, 3] + */ +function returnArgumentsArray() {} + +export { + returnFirstArgument, + sumWithDefaults, + returnArgumentsArray, + returnFnResult, + returnCounter, +}; diff --git a/projects/functions/index.spec.js b/projects/functions/index.spec.js new file mode 100644 index 000000000..396d4a58e --- /dev/null +++ b/projects/functions/index.spec.js @@ -0,0 +1,77 @@ +import { + returnArgumentsArray, + returnCounter, + returnFirstArgument, + returnFnResult, + sumWithDefaults, +} from './index'; + +describe('ДЗ 1 - функции', () => { + describe('returnFirstArgument', () => { + it('должна возвращать переданный аргумент', () => { + expect(returnFirstArgument(123)).toBe(123); + expect(returnFirstArgument('ls')).toBe('ls'); + }); + }); + + describe('sumWithDefaults', () => { + it('должна возвращать сумму переданных аргументов', () => { + expect(sumWithDefaults(1, 2)).toBe(3); + expect(sumWithDefaults(10, -2)).toBe(8); + }); + + it('значение по умолчанию второго аргумента должно быть 100', () => { + expect(sumWithDefaults(10)).toBe(110); + expect(sumWithDefaults(-2)).toBe(98); + }); + }); + + describe('returnFnResult', () => { + it('должна возвращать результат вызова переданной функции', () => { + function fn() { + return value; + } + + const value = Math.random(); + const result = returnFnResult(fn); // result = fn() -> value + + expect(result).toBe(value); + }); + }); + + describe('returnCounter', () => { + it('должна возвращать функцию', () => { + const result = returnCounter(); + + expect(typeof result).toBe('function'); + }); + + it('возвращаемая функция должна увеличивать переданное число на единицу при каждом вызове', () => { + const value = parseInt(Math.random() * 10, 10); + const result = returnCounter(value); + + expect(result()).toBe(value + 1); + expect(result()).toBe(value + 2); + expect(result()).toBe(value + 3); + }); + + it('значение аргумента должно быть 0 по умолчанию', () => { + const result = returnCounter(); + + expect(result()).toBe(1); + expect(result()).toBe(2); + expect(result()).toBe(3); + }); + }); + + describe('returnArgumentsArray', () => { + it('должна возвращать переданные аргументы в виде массива', () => { + expect(returnArgumentsArray(1, 2, 3)).toEqual([1, 2, 3]); + expect(returnArgumentsArray('l', 's')).toEqual(['l', 's']); + }); + + it('должна возвращать пустой массив если нет аргументов', () => { + expect(returnArgumentsArray()).toEqual([]); + }); + }); +}); From 6489a23540ad563805a0183288a353ce4d2fdb9b Mon Sep 17 00:00:00 2001 From: Polina <109180069+JimmyCoid@users.noreply.github.com> Date: Thu, 20 Jul 2023 11:20:24 +0300 Subject: [PATCH 2/6] =?UTF-8?q?=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=201=20=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- projects/week-1/week-1.js | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 projects/week-1/week-1.js diff --git a/projects/week-1/week-1.js b/projects/week-1/week-1.js new file mode 100644 index 000000000..954ff2fc4 --- /dev/null +++ b/projects/week-1/week-1.js @@ -0,0 +1,41 @@ +// Задание 1 + +function returnFirstArgument() { + return "привет"; +} +console.log(returnFirstArgument()); + +// Задание 2.1 + +function sumWithDefaults(a,b) { + return a+b; +} +console.log("Результат выполнения задания 2.1:", sumWithDefaults(10,2)); + +// Задание 2.2* + +function sumWithDefaults(a,b=100) { + return a+b; +} +console.log("Результат выполнения задания 2.2*:", sumWithDefaults(10)); + +// Задание 3 + +function returnFnResult(fn) { + return fn(); +} + +// Задание 4 +var f = returnCounter(); +function returnCounter(i = 10) { + return () => ++i; + +} +console.log(f()); + +// Задание 5 + +function returnArgumentsArray(...args) { + return args; +} +console.log(returnArgumentsArray(1,2,3)); \ No newline at end of file From 35c27bf7a62fa9483a6483cc0fe4575a38bf8194 Mon Sep 17 00:00:00 2001 From: Polina <109180069+JimmyCoid@users.noreply.github.com> Date: Thu, 20 Jul 2023 17:17:51 +0300 Subject: [PATCH 3/6] Delete week-1.js --- projects/week-1/week-1.js | 41 --------------------------------------- 1 file changed, 41 deletions(-) delete mode 100644 projects/week-1/week-1.js diff --git a/projects/week-1/week-1.js b/projects/week-1/week-1.js deleted file mode 100644 index 954ff2fc4..000000000 --- a/projects/week-1/week-1.js +++ /dev/null @@ -1,41 +0,0 @@ -// Задание 1 - -function returnFirstArgument() { - return "привет"; -} -console.log(returnFirstArgument()); - -// Задание 2.1 - -function sumWithDefaults(a,b) { - return a+b; -} -console.log("Результат выполнения задания 2.1:", sumWithDefaults(10,2)); - -// Задание 2.2* - -function sumWithDefaults(a,b=100) { - return a+b; -} -console.log("Результат выполнения задания 2.2*:", sumWithDefaults(10)); - -// Задание 3 - -function returnFnResult(fn) { - return fn(); -} - -// Задание 4 -var f = returnCounter(); -function returnCounter(i = 10) { - return () => ++i; - -} -console.log(f()); - -// Задание 5 - -function returnArgumentsArray(...args) { - return args; -} -console.log(returnArgumentsArray(1,2,3)); \ No newline at end of file From b3d0831356e6f9fdedc35cee32f65850b5f8167d Mon Sep 17 00:00:00 2001 From: Polina <109180069+JimmyCoid@users.noreply.github.com> Date: Thu, 20 Jul 2023 17:20:31 +0300 Subject: [PATCH 4/6] =?UTF-8?q?=D0=92=D0=BD=D0=B5=D1=81=D0=B5=D0=BD=D1=8B?= =?UTF-8?q?=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- projects/week-1/index.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 projects/week-1/index.js diff --git a/projects/week-1/index.js b/projects/week-1/index.js new file mode 100644 index 000000000..537ffa78c --- /dev/null +++ b/projects/week-1/index.js @@ -0,0 +1,29 @@ +// Задание 1 + +function returnFirstArgument(first) { + return first; +} + +// Задание 2 + +function sumWithDefaults(a,b=100) { + return a+b; +} + +// Задание 3 + +function returnFnResult(fn) { + return fn(); +} + +// Задание 4 +var f = returnCounter(); +function returnCounter(i = 10) { + return () => ++i; +} + +// Задание 5 + +function returnArgumentsArray(...args) { + return args; +} From 03f24ac15e127a9676839a025c125a44b0c1c059 Mon Sep 17 00:00:00 2001 From: Polina <109180069+JimmyCoid@users.noreply.github.com> Date: Fri, 21 Jul 2023 11:58:52 +0300 Subject: [PATCH 5/6] Add files via upload --- projects/functions/index.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/projects/functions/index.js b/projects/functions/index.js index 38ebca33b..8916169da 100644 --- a/projects/functions/index.js +++ b/projects/functions/index.js @@ -12,7 +12,9 @@ Другими словами: функция должна возвращать в неизменном виде то, что поступает ей на вход */ -function returnFirstArgument() {} + function returnFirstArgument(first) { + return first; +} /* Задание 2: @@ -28,7 +30,9 @@ function returnFirstArgument() {} Пример: sumWithDefaults(10) вернет 110 */ -function sumWithDefaults() {} + function sumWithDefaults(a,b=100) { + return a+b; +} /* Задание 3: @@ -38,7 +42,9 @@ function sumWithDefaults() {} Пример: returnFnResult(() => 'привет') вернет 'привет' */ -function returnFnResult() {} + function returnFnResult(fn) { + return fn(); +} /* Задание 4: @@ -53,7 +59,10 @@ function returnFnResult() {} console.log(f()); // выведет 12 console.log(f()); // выведет 13 */ -function returnCounter() {} +var f = returnCounter(); +function returnCounter(i = 10) { + return () => ++i; +} /* Задание 5 *: @@ -64,7 +73,9 @@ function returnCounter() {} Пример: returnArgumentsArray(1, 2, 3) вернет [1, 2, 3] */ -function returnArgumentsArray() {} +function returnArgumentsArray(...args) { + return args; +} export { returnFirstArgument, From cd26f398917736c35620cd523e4078d29b53cc25 Mon Sep 17 00:00:00 2001 From: Polina <109180069+JimmyCoid@users.noreply.github.com> Date: Fri, 21 Jul 2023 11:59:17 +0300 Subject: [PATCH 6/6] Delete projects/week-1 directory --- projects/week-1/index.js | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 projects/week-1/index.js diff --git a/projects/week-1/index.js b/projects/week-1/index.js deleted file mode 100644 index 537ffa78c..000000000 --- a/projects/week-1/index.js +++ /dev/null @@ -1,29 +0,0 @@ -// Задание 1 - -function returnFirstArgument(first) { - return first; -} - -// Задание 2 - -function sumWithDefaults(a,b=100) { - return a+b; -} - -// Задание 3 - -function returnFnResult(fn) { - return fn(); -} - -// Задание 4 -var f = returnCounter(); -function returnCounter(i = 10) { - return () => ++i; -} - -// Задание 5 - -function returnArgumentsArray(...args) { - return args; -}