@supkiler

Почему не переводит в римские цифры?

const romAll = ['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'];
const numAll = [1000,900,500,400,100,90,50,40,10,9,5,4,1];

function roman(all){
    let result = ' '
    romAll.map( (item, ind) =>{
        while (item <= all){
            result = numAll[ind];
            all = all - item;
        }
    });
    console.log(result)
    return result;
};
console.log(roman(5));

Почему result пустой?
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Kentavr16
@Kentavr16
long cold winter
потому что
function roman(all){
let result = ''
numAll.map( (item, ind) =>{
while (item <= all){
result = result + romAll[ind];
all = all - item;
}
});
return result;
};


Если интересно именно почему - итерация по не тому массиву. Для подробностей проведи дебаггинг кода через отладку или же просто вставь
function roman(all){
let result = ' '
romAll.map( (item, ind) =>{
   console.log(item <= all)//увидишь что для каждой итерации тут false,
//а значит result останется пустой строкой
while (item <= all){
result = numAll[ind];
all = all - item;
}
});

return result;
};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 03:11
500 руб./за проект
24 нояб. 2024, в 01:35
5000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект