Ways to 0-pad a number: large pad size (v2)

Revision 2 of this benchmark created by Michael A. Smith on


Description

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

What happens when the pad size is large?

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) {
      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, 16);
padNumberMath(120, 16);
padNumberMath(14, 16);
padNumberMath(9, 16);
 
ready
Array join
padNumberArray(1301, 16);
padNumberArray(120, 16);
padNumberArray(14, 16);
padNumberArray(9, 16);
 
ready
Loop
padNumberLoop(1301, 16);
padNumberLoop(120, 16);
padNumberLoop(14, 16);
padNumberLoop(9, 16);
 
ready

Revisions

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