-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
69 lines (61 loc) · 1.46 KB
/
index.js
File metadata and controls
69 lines (61 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
const numberInput = document.getElementById("number");
const convertBtn = document.getElementById("convert-btn");
const output = document.getElementById("output");
const convertToRoman = (input) =>{
const romanNumerals =[
['M',1000],
['CM',900],
['D',500],
['CD',400],
['C',100],
['XC',90],
['L',50],
['XL',40],
['X',10],
['IX',9],
['V',5],
['IV',4],
['I',1],
];
let result = "";
romanNumerals.forEach(([roman,value])=>{
while (input >= value){
result += roman;
input -= value;
}
});
return result;
};
const checkInput = (input)=>{
const num = parseInt(input,10);
if(!input || isNaN(num)){
return "Please enter a valid number";
} else if(num < 1){
return "Please enter a number greater than or equal to 1";
} else if(num > 3999){
return "Please enter a number less than or equal to 3999";
}
return null
};
const outputOut = ()=>{
output.innerText ="";
output.classList.remove("alert");
output.classList.add("hidden");
}
numberInput.addEventListener("input",()=>{
outputOut();
});
convertBtn.addEventListener("click", ()=>{
const input = numberInput.value;
const error = checkInput(input);
if(error) {
output.innerText = error;
output.classList.add("alert");
output.classList.remove("hidden");
} else {
const roman = convertToRoman(parseInt(input,10));
output.innerText = roman;
output.classList.remove("alert");
output.classList.remove("hidden");
}
});