Javascript Добавление ведущих нулей работает с циклом while, но не для цикла - PullRequest
0 голосов
/ 19 ноября 2018

Я извлекаю число из строки и передаю его функции.Я хочу добавить 1 к нему, а затем вернуть строку, сохраняя при этом ведущие нули.Я смог сделать это, используя цикл while, но не цикл for.Цикл for просто пропускает нули.

var addMoreZeros = (numStr)=> {
    let newNumStr = (parseInt(numStr)+1).toString();
    let zerosToAdd = numStr.length - newNumStr.length;
    let zeroPadStr = "";
    let i = 0;
    while (i < zerosToAdd) {
        zeroPadStr += "0";
        i++;
    }
   //This doesn't work
   //for(let i = 0; i++; i < zerosToAdd) {
   //   zeroPadStr+="0";
   //}
    return zeroPadStr + newNumStr;
}

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

У вас неверный синтаксис цикла for, он должен быть:

(initializer; condition; increments / decrements)

, поэтому:

for(let i = 0; i < zerosToAdd; i++) {}

var addMoreZeros = (numStr)=> {
    let newNumStr = (parseInt(numStr)+1).toString();
    let zerosToAdd = numStr.length - newNumStr.length;
    let zeroPadStr = "";
    for(let i = 0; i < zerosToAdd; i++) {
      zeroPadStr+="0";
    }
    return zeroPadStr + newNumStr;
}
console.log(addMoreZeros("00125"))
0 голосов
/ 19 ноября 2018

Альтернативный подход (вместо использования for / while):

var addMoreZeros = (numStr, numLength = numStr.length) => `${++numStr}`.padStart(numLength,'0');

// example of usage
console.log(addMoreZeros("124", 5));

Объяснение ++numStr приводит числовую строку к числу и увеличивает его, затем `${...}` возвращает число обратно в строку. Наконец padStart() добавляет ведущие нули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...