test task (22-05-2024)
by Evgeniy Lukovsky
HTML
<div>
<input id="userInput" type="text"/>
<p id="output">
...placeholder
</p>
</div>
JavaScript
document.addEventListener("readystatechange", () => {
let processing = (input) => {
//return
let tmp = Object.entries(input.split("").reduce((acc, val) => {
acc[val] = !!acc[val] ? acc[val] + 1 : 1
return acc
}, {}))
return tmp.filter(([key, value]) => value >= 2).length
}
/**
* @param {number} n
* @return {number}
*/
var numDupDigitsAtMostN = function(n) {
let count = 0,
chars = ""
for (let i = 0; i <= n; i++) {
chars = i.toString()
if (new Set(chars).size < chars.length) {
count++
console.log("ex: ", chars)
}
}
return count
}
let inputElements = document.querySelectorAll("#userInput")
if (inputElements.length === 1) {
let inputElement = inputElements[0]
let showOutput = (outputText) => {
let outputElement = document.querySelector("#output")
outputElement.innerHTML = outputText
}
inputElement.addEventListener('keyup', (e) => {
return showOutput(numDupDigitsAtMostN(parseInt(e.target.value, 10)))
})
}
})