Объясните пожалуйста следующий код

Запросить у пользователя число и на сколько цифр его сдвинуть. Сдвинуть цифры числа и вывести результат (если число 123456 сдвинуть на 2 цифры, то получится 345612).

let number = +prompt('Введите число : ');
let count = +prompt('Введите цифру для сдвига: ');
let number2 = number<0 ? number*(-1) : number;
for(i = count; i > 0; i--){
  let count2=0;
  for(j=number2; j>=1; j/=10){
    count2++;
  }
  let power = 10**(count2-1);
  number2=(number2-Math.floor(number2/power)*power)*10+Math.floor(number2/power);
}
alert(number2);

Не могу понять алгоритм кода, решить нужно именно циклом.


Ответы (1 шт):

Автор решения: SwaD
let number = +prompt('Введите число : '); // Получаем число
let count = +prompt('Введите цифру для сдвига: '); // Получаем сдвиг
let number2 = number<0 ? number*(-1) : number; // Если число меньше 0, умножаем на -1 иначе оставляем введенное число и присваиваем переменной
for(i = count; i > 0; i--){ // Запускаем цикл для i = сдвиг, пока i больше 0, каждую итерацию уменьшаем значение на 1
  let count2=0;
  for(j=number2; j>=1; j/=10){ // каждую итерацию делим j на 10, пока j не станет меньше 1
    count2++; // Увеличиваем на 1
  }
  let power = 10**(count2-1); // присваиваем значение 10 в степени count2-1
  number2=(number2-Math.floor(number2/power)*power)*10+Math.floor(number2/power); // Выполняем расчет
}
alert(number2); // выводим в браузер ))
→ Ссылка