Fastest way to get the first in a numberfaster way to select the nth digit in integer (v2)

Revision 2 of this benchmark created by Eric Chen on


Description

faster way to select the nth digit in integer

Setup

var testNumbers = [1, 12, 123, 1234, 12345];
    
    function toStringAndCharAt(ntn, number){
      return number.toString().charAt(ntn);
    }
    
    function plusAndCharAt(ntn, number){
      return (number + '').charAt(ntn);
    }
    
    function plusAndIndex(ntn, number){
      return (number + '')[ntn];
    }
    
    function math(ntn, number){
      var len = Math.floor( Math.log(number) / Math.LN10 ) - ntn;
      return ( (number / Math.pow(10, len)) % 10) | 0;
    }
    
    
    function mathReverse(ntn, number) {
      return Math.floor((number / Math.pow(10, ntn)) % 10);
    }

Test runner

Ready to run.

Testing in
TestOps/sec
number.toString().chatAt(ntn)
toStringAndCharAt(0, testNumbers[0]);
toStringAndCharAt(1, testNumbers[1]);
toStringAndCharAt(2, testNumbers[2]);
toStringAndCharAt(0, testNumbers[3]);
toStringAndCharAt(3, testNumbers[4]);
ready
(number + '').chatAt(ntn)
plusAndCharAt(0, testNumbers[0]);
plusAndCharAt(1, testNumbers[1]);
plusAndCharAt(2, testNumbers[2]);
plusAndCharAt(0, testNumbers[3]);
plusAndCharAt(3, testNumbers[4]);
ready
(number + '')[ntn]
plusAndIndex(0, testNumbers[0]);
plusAndIndex(1, testNumbers[1]);
plusAndIndex(2, testNumbers[2]);
plusAndIndex(0, testNumbers[3]);
plusAndIndex(3, testNumbers[4]);
ready
Math
math(0, testNumbers[0]);
math(1, testNumbers[1]);
math(2, testNumbers[2]);
math(0, testNumbers[3]);
math(3, testNumbers[4]);
ready
mathReverse
mathReverse(0, testNumbers[0]);
mathReverse(1, testNumbers[1]);
mathReverse(2, testNumbers[2]);
mathReverse(0, testNumbers[3]);
mathReverse(3, testNumbers[4]);
ready

Revisions

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

  • Revision 2: published by Eric Chen on