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.
		
		
		
		
		
			
		
			
				
					
					
						
							34 lines
						
					
					
						
							830 B
						
					
					
				
			
		
		
	
	
							34 lines
						
					
					
						
							830 B
						
					
					
				| "use strict"; | |
|  | |
| function main(formName) { | |
| 	let result = document.getElementById("result"); | |
| 	 | |
| 	let arr = document.forms[formName].elements[0].value; | |
| 	arr = arr.trim().split(" "); | |
| 	let checkResult = arr.some( elem => isNotNumber(elem) ); | |
| 	if (checkResult) { | |
| 		result.textContent = "Ошибка: arr должен содержать только числа, разделенные пробелом!"; | |
| 		return; | |
| 	} else { | |
| 		arr = arr.map( elem => Number(elem) ); | |
| 	} | |
|  | |
| 	result.textContent = "Результат: " + countPairs(arr); | |
| } | |
|  | |
| function countPairs(arr) { | |
| 	let map = new Map(); | |
| 	 | |
| 	for (let num of arr) { | |
| 		map.set(num, (map.get(num) || 0) + 1); | |
| 	} | |
| 	 | |
| 	let result = 0; | |
| 	map.forEach( val => result += Math.trunc(val / 2) ); | |
|  | |
| 	return result; | |
| } | |
|  | |
| function isNotNumber(val) { | |
| 	return val.replace(/\s/g, '').length === 0 || isNaN(val); | |
| }
 | |
| 
 |