const id = 46919;
const string = id.toString(36); // output: "107b"

console.log(string.padStart(3, '0'));

Ожидаемый результат console.log() будет 107, поскольку targetLength метода padStart () равен 3, но фактический результат равен 107b, что в сумме составляет 4 символов.

Вы знаете, почему это происходит?

Изменить: я неправильно понял использование этого метода, я думал, что он сократит лишние символы, такие как slice ()

0
kwatanab 22 Сен 2021 в 17:25

2 ответа

Лучший ответ

ToString (36) преобразует число в основание 36 из основания 10, 46919 равно 107b в базе 36. padStart будет добавлять символы до тех пор, пока длина не станет равной первому параметру. Поскольку 107b уже состоит из 4 символов, он ничего не делает.

0
markfila 22 Сен 2021 в 14:41

Может быть, вы можете использовать parseInt() в конце кода

const id = 46919;
const string = id.toString(36);
console.log(parseInt(string.padStart(3, '0')));
//output 107
0
Kholid Saifulloh 22 Сен 2021 в 14:47