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