Цикл правильныйУвидеть его неопределенный
const numKey = [[1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'], [100, 'C'], [90, 'XC'], [50,'L'], [40, 'XL'], [10, 'X'], [9, 'IX'] [5, 'V'], [4, 'IV'] [1, 'I']];
console.log(numKey)
function convertToRoman(num) {
const numKey = [
[1000, 'M'],
[900, 'CM'],
[500, 'D'],
[400, 'CD'],
[100, 'C'],
[90, 'XC'],
[50, 'L'],
[40, 'XL'],
[10, 'X'],
[9, 'IX'],[5, 'V'],
[4, 'IV'],[1, 'I']
];
let remaining = num;
let romanStr = '';
while (remaining > 0) {
for (let i = 0; i < numKey.length; i++) {
if (numKey[i][0] <= remaining) {
let j = 0;
while (j < Math.floor(remaining / numKey[i][0])) {
romanStr += numKey[i][1]
remaining -= numKey[i][0] * Math.floor(remaining / numKey[i][0])
j++
}
}
}
break;
}
return romanStr;
}
console.log(convertToRoman(5))