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.
 
 
 
 
 

41 lines
865 B

"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);
}