Ways to 0-pad a number (v9)

Revision 9 of this benchmark created by Vasil Dimov on


Description

There are lots of ways to zero-pad a number in JavaScript. Which is fastest?

Setup

/**
     * Pad a number with leading zeros to "pad" places:
     *
     * @param number: The number to pad
     * @param pad: The maximum number of leading zeros
     */
    function padNumberMath(number, pad) {
        var N = Math.pow(10, pad);
        return number < N ? ("" + (N + number)).slice(1) : "" + number
    }
    function padNumberArray(n, len) {
      var n_str = n.toString();
      if (n_str.length >= len) {
        return(n_str);
      }
      return (new Array(len + 1).join('0') + n).slice(-len);
    }
    function padNumberLoop(number, length) {
        var my_string = '' + number;
        while (my_string.length < length) {
            my_string = '0' + my_string;
        }
        return my_string;
    }

Test runner

Ready to run.

Testing in
TestOps/sec
Math
padNumberMath(1301, 4);
padNumberMath(120, 4);
padNumberMath(14, 4);
padNumberMath(9, 4);
 
ready
Array join
padNumberArray(1301, 4);
padNumberArray(120, 4);
padNumberArray(14, 4);
padNumberArray(9, 4);
 
ready
Loop
padNumberLoop(1301, 4);
padNumberLoop(120, 4);
padNumberLoop(14, 4);
padNumberLoop(9, 4);
 
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.