счетчик с несколькими цифрами - PullRequest
0 голосов
/ 07 марта 2011

Я довольно новичок в Javascript, и до сих пор смог справиться с этим, просто следуя учебным пособиям и читая форумы, но этот действительно меня немного озадачил.

По сути, я хотел иметь счетчик для чисел, который состоит из семи цифр, я нашел несколько вещей, но ничего не имело для меня смысла, поэтому я написал это:

imgNumber++;
if (imgNumber < 10){function add(number){return '00000' + number}};
if (imgNumber > 10 && imgNumber < 100){function add(number){return '0000' + number}};
if (imgNumber > 100 && imgNumber < 1000){function add(number){return '000' + number}};
if (imgNumber > 1000 && imgNumber < 10000){function add(number){return '00' + number}};
if (imgNumber > 10000 && imgNumber < 100000){function add(number){return '0' + number}};
if (imgNumber > 100000 && imgNumber < 1000000){function add(number){return '' + number}};

Это работает, насколько я могу судить. Мой вопрос таков: предвидите ли вы какие-либо проблемы с этим, и если нет, то есть ли более чистый способ написать все это?

Буду признателен за любые ответы.

Ура, Colin

Ответы [ 3 ]

2 голосов
/ 07 марта 2011

Как и во всех функциях программирования ваш друг.Я искал в Google javascript для заполнения нулями и получил указание на этот сайт .

function pad(number, length) {
       var negative = number < 0;
       var str = '' + Math.abs(number);
       while (str.length < length) {
           str = '0' + str;
       }
       if(negative) str = '-' + str;
    return str;
}

. Используя это, вы просто сгенерируете стандарт числа и перед его сохранением / выводом запустите его.через эту функцию:

pad(1,7);
1 голос
/ 07 марта 2011

Один вкладыш:

var output = sprintf("%07d", 30);

Поверьте, это сэкономит вам много времени в javascript (и на других языках).Вы можете загрузить реализацию в http://sprintf.googlecode.com/files/sprintf-0.7-beta1.js

. На сегодняшний день этот код работает прямо сейчас, возможно, вам нужно изменить src библиотеки на более обновленный:

<script type="text/javascript" src="http://sprintf.googlecode.com/files/sprintf-0.7-beta1.js"> </script>

<script type="text/javascript" >
   alert(sprintf("%04d",4));
</script>

Подробнее, здесь , плюс есть другие реализации этого полезного метода.

0 голосов
/ 07 марта 2011

Почему бы вам просто не взять журнал (основание 10) числа в качестве индикатора количества добавляемых цифр.

Если log (N) находится в диапазоне от 0 до 1, N - однозначное число.
Если log (N) больше или равно 1, но меньше 2, N имеет две цифры и т. Д.

На самом деле я не кодирую в JavaScript, поэтому я не знаю, есть ли у вас доступ к функции журнала, но если вы это сделаете, это очень краткий способ получить результат.

Джон Донер

...