Browse Source

Добавлена работа 1

master v1.1.0
Krio 4 years ago
parent
commit
485666a40c
  1. 44
      labs/lab1/desc.json
  2. 41
      labs/lab1/main.js

44
labs/lab1/desc.json

@ -0,0 +1,44 @@
{
"number": "1",
"tasK": "Создайте функцию, которая принимает массив чисел arr и число n. Верните true, если сумма любых двух элементов равна заданному числу. В противном случае верните false.",
"vars": [
[
{
"name": "arr",
"desc": "Массив исходных чисел, разделенных пробелом",
"data": ""
},
{
"name": "n",
"desc": "Требуемая сумма",
"data": ""
}
],
[
{
"name": "arr",
"desc": "Массив исходных чисел, разделенных пробелом",
"data": "1 2 3"
},
{
"name": "n",
"desc": "Требуемая сумма",
"data": "4"
}
],
[
{
"name": "arr",
"desc": "Массив исходных чисел, разделенных пробелом",
"data": "1 2 3"
},
{
"name": "n",
"desc": "Требуемая сумма",
"data": "1"
}
]
],
"scriptpath": "labs/lab1/main.js",
"complete": true
}

41
labs/lab1/main.js

@ -0,0 +1,41 @@
"use strict";
function main(formName) {
let arr = document.forms[formName].elements[0].value;
arr = arr.split(" ");
let result = arr.some( elem => isNotNumber(elem) );
if (result) {
alert("arr должен содержать только числа, разделенные пробелом!");
return;
} else {
arr = arr.map( elem => Number(elem) );
}
let n = document.forms[formName].elements[1].value;
if (isNotNumber(n)) {
alert("n не является числом!");
return;
} else {
n = Number(n);
}
alert( "Результат: " + hasPairForSum(arr, n) );
}
function hasPairForSum(arr, n) {
let map = new Map();
for (let num of arr) {
if (map.has(n - num)) {
return true;
} else {
map.set(num, null)
}
}
return false;
}
function isNotNumber(val) {
return val.replace(/\s/g, '').length === 0 || isNaN(val);
}
Loading…
Cancel
Save