From 293ea78911659af244718dab86c016a1cea8d6c2 Mon Sep 17 00:00:00 2001 From: Nikiroy78 Date: Sun, 12 Mar 2023 13:58:18 +0300 Subject: [PATCH] upload files into repos --- 4.nodejs_js/index.js | 41 +++++++++++++++++++++++++++++++ 4.nodejs_js/readme.md | 57 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 4.nodejs_js/index.js diff --git a/4.nodejs_js/index.js b/4.nodejs_js/index.js new file mode 100644 index 0000000..28d7c91 --- /dev/null +++ b/4.nodejs_js/index.js @@ -0,0 +1,41 @@ +function isInt (value) { // Функция проверки целочисленного типа + if (typeof(value) == 'number') { + return parseInt(value) == value; + } + else { + return false; + } +} + +function isArray (value, typeCheck=null) { // Функция проверки типа массива + if (!Array.isArray(value)) { + return false; + } + else if (typeCheck == null) { + return true + } + else { + for (let i in value) { + if (!typeCheck(value[i])) { + return false; + } + } + return true; + } +} + +function getTwoSummands (array, findValue) { + if (isInt(findValue) && isArray(array, isInt)) { // Вы же ещё помните, что javascript - язык с динамической, а не статической типизацией данных? + let calculatedVal; + for (let i in array) { + calculatedVal = findValue - array[i]; + if (array.indexOf(calculatedVal) != -1 && array.indexOf(calculatedVal) != i) { // Проверим есть ли значение в массиве и имеет ли данное значение рассматриваемый индекс. + return [array[i], calculatedVal]; + } + } + return []; + } + else { + throw new Error("Wrong arguments: , "); + } +} \ No newline at end of file diff --git a/4.nodejs_js/readme.md b/4.nodejs_js/readme.md index a1a2d17..8666d50 100644 --- a/4.nodejs_js/readme.md +++ b/4.nodejs_js/readme.md @@ -21,3 +21,60 @@ targetSum = 10 -1 + 11 = 10 = targetSum ``` Код написанной функции прокомментируйте. +## Алгоритм +Алгоритм будет заключаться в переборе всех значений массива с вычетом из входного параметра с целью поиска полученного значения в массиве: +``` +: [3, 5, -4, 8, 11, 1, -1, 6], 10 +--------------------------------- +>> 10 - 3 = 7 | false +>> 10 - 5 = 5 | false +>> 10 - (-4) = -14 | false +>> 10 - 8 = 2 | false +>> 10 - 11 = -1 | true +--------------------------------- +<< [11, -1] +``` +## Реализация +```javascript +function isInt (value) { // Функция проверки целочисленного типа + if (typeof(value) == 'number') { + return parseInt(value) == value; + } + else { + return false; + } +} + +function isArray (value, typeCheck=null) { // Функция проверки типа массива + if (!Array.isArray(value)) { + return false; + } + else if (typeCheck == null) { + return true + } + else { + for (let i in value) { + if (!typeCheck(value[i])) { + return false; + } + } + return true; + } +} + +function getTwoSummands (array, findValue) { + if (isInt(findValue) && isArray(array, isInt)) { // Вы же ещё помните, что javascript - язык с динамической, а не статической типизацией данных? + let calculatedVal; + for (let i in array) { + calculatedVal = findValue - array[i]; + if (array.indexOf(calculatedVal) != -1 && array.indexOf(calculatedVal) != i) { // Проверим есть ли значение в массиве и имеет ли данное значение рассматриваемый индекс. + return [array[i], calculatedVal]; + } + } + return []; + } + else { + throw new Error("Wrong arguments: , "); + } +} +``` \ No newline at end of file