You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

43 lines
993 B

"use strict";
function main(formName) {
let result = document.getElementById("result");
let arr = document.forms[formName].elements[0].value;
arr = arr.split(" ");
let checkResult = arr.some( elem => isNotNumber(elem) );
if (checkResult) {
result.textContent = "Ошибка: arr должен содержать только числа, разделенные пробелом!";
return;
} else {
arr = arr.map( elem => Number(elem) );
}
let n = document.forms[formName].elements[1].value;
if (isNotNumber(n)) {
result.textContent = "Ошибка: n не является числом!";
return;
} else {
n = Number(n);
}
result.textContent = "Результат: " + 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);
}