1

How to iterate numbers 001 002 ... 010 011 012 ... 100 101 102... with javascript? I tried as following, it works wen num is over 100, however num under 100, it doesn't work. Please teach me better way.


<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pages</title>
</head>
<body>

<script language="JavaScript">

document.write('<table width="650"><tr><td>');
    num = 123; 
    var i, j, k = num;
    numlen = num.length; 

    if (numlen == 1 ) {
        for (var i=1; (i<num); i++) { 
        document.write('00'+i+' ');
        }
    }
    else if (numlen == 2) {
        for (var i=1; (i<10); i++) {
        document.write('00'+i+' ');
        }
        for (var i=10; (i<=num); i++) {
        document.write('0'+i+' ');
        }
    }
    else {
        for (var i=1; (i<10); i++) {
        document.write('00'+i+' ');
        }
        for (var i=10; (i<100); i++) {
        document.write('0'+i+' ');
        }
        for (var i=100; (i<=num); i++) {
        document.write(i+' ');
        }
    }
document.write('</td></tr></table>');

</script>

</body>

user3005045
  • 23
  • 1
  • 3

3 Answers3

2

Try this:

function pad(s) 
{ 
   while (s.length < 3) 
      s = '0' + s; 
   return s; 
};


// your code

for (var i=1; i<num; i++) { 
   document.write(pad(''+i));
}

You don't need (and really shouldn't do) different loops. One will do, just be sure to pad each number with the right amount of leading zeros, calling "pad" function.

LittleSweetSeas
  • 6,786
  • 2
  • 21
  • 26
0
for (var i=1; i<1000; i++) {
 document.write(((i+1000)+"").substr(1));
}
Alexander
  • 19,906
  • 19
  • 75
  • 162
0

How about this -- very efficient (more so than padding with while):

var i;
for (i = 1; i <= upperLimit; i++)
{
   var text = '00' + i;
   document.write(text.substr(text.length - 3, 3);
}
Roy Dictus
  • 32,551
  • 8
  • 60
  • 76