Дополнительно
Заполнение числа ведущими нулями в JavaScript
Возможный дубликат:
Как создать нулевое значение с помощью JavaScript?
В JavaScript мне нужно, чтобы у меня было padding.
Например, если у меня есть число 9, то оно будет "0009". Если у меня есть число, скажем, 10, оно будет "0010". Обратите внимание, что оно всегда будет содержать четыре цифры.
Один из способов сделать это - вычесть число минус 4, чтобы получить количество 0, которое мне нужно поставить.
Есть ли более хитрый способ сделать это?
417
9
Не так уж много "хитростей" происходит до сих пор:
Когда вы инициализируете массив числом, он создает массив с
length
, установленной на это значение, так что массив кажется содержащим стольконеопределенных
элементов. Хотя некоторые методы экземпляра массива пропускают элементы массива без значений,.join()
этого не делает, по крайней мере, не полностью; он рассматривает их так, как будто их значением является пустая строка. Таким образом, вы получаете копию нулевого символа (или чего бы то ни было "z") между каждым из элементов массива; вот почему здесь присутствует+ 1
.Пример использования:
Попробуйте:
Теперь проверьте:
[
DEMO
][1]В ECMAScript 8 появился новый метод
padStart
иpadEnd
, который имеет следующий синтаксис.Итак, теперь мы можем использовать
Забавно, недавно мне пришлось сделать это.
Использовать как:
Не красиво, но эффективно.
Вы сказали, что вы были рядом-
Вы могли бы сделать нечто подобное:
Редактировать: это была основная идея для функции, но, чтобы добавить поддержку большего числа (а также "неверный ввод"), это, вероятно, будет лучше:
Это делает 2 вещи:
в месте
~~Нум` будут поддерживаться более высокие цифры.Для начала, Вместо того, чтобы использовать цикл, чтобы создать лишние нули:
Поскольку вы сказали, Это's всегда будет иметь длину 4, я выиграл'т делать какие-либо проверки ошибок, чтобы сделать это пятно. ;)
Идея: просто замените '0000' с номером... проблема в том, что, если вход равен 0, мне нужно жестко его вернуть '0000'. ЛОЛ.
Этого должно быть достаточно гладким.
JSFiddler: http://jsfiddle.net/Up5Cr/
Это на самом деле не 'Слик', но это's быстрее делать операции с целыми числами, чем сделать сцепление на каждой обивка
0
.Эта функция также жестко для вашей конкретной потребности (4-значный обивка), поэтому он's не универсальный.