Проблема с бесконечным циклом (JS)

236
03 июля 2017, 20:34

Добрый вечер. Подскажите, пожалуйста, я новичок и пытаюсь написать алгоритм преобразования арабских чисел в римские. Единственное, что пришло в голову: преобразовать последовательно тысячи, сотни, десятки и единицы (подразумевается, что больше четырехзначных чисел не будет). Реализовал следующим образом:

function convertToRoman(num) {
 var romNum = '';
 var numLength = num + '';
 while (num !== 0) {
   if (numLength.length == 4) {
     romNum += 'M' * (num / 1000);
     num = num % 1000;
   } else if (numLength.length == 3) {
     if ((num / 500) == 1) {
         romNum += 'D';
         num = num - 500;
       } else {
         romNum += 'C' * (num / 100);
         num = num % 100;
       }
   } else if (numLength.length == 2) {
     if ((num / 50) == 1) {
         romNum += 'L';
         num = num - 50;
       } else {
         romNum += 'X' * (num / 10);
         num = num % 10;
       }
   } else {
     if ((num / 5) == 1) {
         romNum += 'V';
         num = num - 5;
       } else {
         romNum += 'I' * num;
         num = 0;
      }
   }
 }
 return romNum;
}

convertToRoman(36);

Но, код не работает, цикл почему-то получается бесконечным. Помогите, пожалуйста, понять почему?

READ ALSO
Почему не работает код игры «угадай число»?

Почему не работает код игры «угадай число»?

Вы забыли вызвать функцию guessingНужно добавить строчку

185
Есть ли аналог Cheerio на клиенте?

Есть ли аналог Cheerio на клиенте?

Подскажите пожалуйста, есть ли библиотека подобная Cheerio только что бы работала на клиенте?

311
Извлечение текста из строки содержащей HTML

Извлечение текста из строки содержащей HTML

В функцию на обработку поступает текст, к примеру вот такой:

307