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
|
||||
```
|
||||
Код написанной функции прокомментируйте.
|
||||
## Алгоритм
|
||||
Алгоритм будет заключаться в переборе всех значений массива с вычетом из входного параметра с целью поиска полученного значения в массиве:
|
||||
```
|
||||
: [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