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