patternjavascriptMinor
Zero-padding a number to have six digits
Viewed 0 times
sixpaddingnumberdigitszerohave
Problem
This is a switch statement in JavaScript. I have a feeling that it can be done in a shorter way.
switch(n.length){
case 1:
n = '00000' + n;
break;
case 2:
n = '0000' + n;
break;
case 3:
n = '000' + n;
break;
case 4:
n = '00' + n;
break;
case 5:
n = '0' + n;
break;
}Solution
Well, the value of
If
Edit:
With the edited code (using
n is known in each case, so you can just put it in the string:switch(n) {
case 1:
n = '000001';
break;
case 2:
n = '00002';
break;
case 3:
n = '0003';
break;
case 4:
n = '004';
break;
case 5:
n = '05';
break;
}If
n can only have one of these values, you can use it as index in an array:n = ['000001','00002','0003','004','05'][n - 1];Edit:
With the edited code (using
n.length in the switch), it would be:n = ['00000','0000','000','00','0'][n.length - 1] + n;Code Snippets
switch(n) {
case 1:
n = '000001';
break;
case 2:
n = '00002';
break;
case 3:
n = '0003';
break;
case 4:
n = '004';
break;
case 5:
n = '05';
break;
}n = ['000001','00002','0003','004','05'][n - 1];n = ['00000','0000','000','00','0'][n.length - 1] + n;Context
StackExchange Code Review Q#5831, answer score: 7
Revisions (0)
No revisions yet.