Заполнение числа начальными нулями в JavaScript?

#javascript

#javascript

Вопрос:

Я пытаюсь найти пример ответа, который я нашел.
Кто-нибудь может объяснить приведенный ниже код шаг за шагом?
Часть ‘str = «0» str’ является наиболее запутанной.

 const fillZero = function (n, w) {
    let str = String(n);
    for (let i = str.length; i < w; i  ) {
      str = "0"   str;
    }
    return str;
}

  console.log(fillZero(5, 3)); // 005
  console.log(fillZero(12, 3)); // 012
  console.log(fillZero(123, 3)); // 123
  

Комментарии:

1. Вы можете использовать String.padStart функцию javascript. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /…

2. Что в этом сбивает с толку? Если значение str "5" равно, то "0" "5" равно "05" .

3. Для 3 исправлено — тогда более простой сценарий : const pad = num => ("00" num).slice(-3);

Ответ №1:

При str = "0" str этом он использует конкатенацию строк. Например, если строка была Hello , после этой строки кода она будет 0Hello .

Ответ №2:

Обычно при использовании i в цикле for большинство людей устанавливают i = 0, вы устанавливаете его на длину символов «n». Таким образом, пока n < w (w = 3, согласно приведенному выше), вы будете добавлять 0 n, пока n = w.

в первом примере: n = 1, w = 3 .

str = 0 5 после первой итерации, ЗАТЕМ str = 0 05 после второй итерации

i больше не меньше 3 , поэтому конечный результат равен 005 .

Комментарии:

1. Спасибо за подробное объяснение!