Script Preparation code:
AخA
 
var dataPool = ["1234", "1X34", "0123", "12x4"];
var testStr = dataPool[Math.floor(Math.random() * dataPool.length)];
Tests:
  • Regex

     
    let isValid = true;
        let regStr = `(${i+1}|X)`;
          const regEx = new RegExp(regStr);
    for (let i = 0; i < testStr.length; i++)
    {
        let code = testStr.charAt(i);
          if(regEx.test(code) === false){
            isValid = false;
            break;
          }
    }
    return isValid;
  • For loop, ParseInt

     
    let isValid = true;
    for (let i = 0; i < testStr.length; i++)
    {
        let code = testStr.charAt(i);
        if (code === "X"){
        }
        else{
          let codeValue = parseInt(code, 10);
          if(codeValue !== i+1){
            isValid = false;
            break;
          }
        }
    }
    return isValid;
  • For loop with switch case

    x
     
    let isValid = true;
    for (let i = 0; i < testStr.length; i++)
    {       
            let char =  testStr.charAt(i);
            switch (true) {
              case char === 'X':
                break;
              case parseInt(char, 10) === i + 1:
                break;
              default:
                isValid = false;
            }
    }
    return isValid;
  • For loop, toString

     
    let isValid = true;
    for (let i = 0; i < testStr.length; i++)
    {
        let code = testStr.charAt(i);
        if (code === "X"){
        }
        else{
          if(code !== (i+1).toString()){
            isValid = false;
            break;
          }
        }
    }
    return isValid;
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Regex
    For loop, ParseInt
    For loop with switch case
    For loop, toString

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Chrome 103 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Regex 3944572.0 Ops/sec
For loop, ParseInt 1445041.2 Ops/sec
For loop with switch case 1440011.9 Ops/sec
For loop, toString 2588539.2 Ops/sec