#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. Спасибо за подробное объяснение!