upload files into repos
This commit is contained in:
parent
b54f718590
commit
293ea78911
41
4.nodejs_js/index.js
Normal file
41
4.nodejs_js/index.js
Normal file
@ -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: <Array(int)>, <int>");
|
||||||
|
}
|
||||||
|
}
|
@ -21,3 +21,60 @@ targetSum = 10
|
|||||||
-1 + 11 = 10 = targetSum
|
-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: <Array(int)>, <int>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user