JSFiddle - React, Tailwind, and code Playground

by Tejus Pratap

HTML

<script src="http://goo.gl/t0zZZ5"></script>
<script src="http://goo.gl/2mV3tc"></script>
Loaded data URL : <a target="_blank" href="http://goo.gl/t0zZZ5">http://goo.gl/t0zZZ5</a>

<br/>
<br/>Result A :
<div id="aresult"></div>Time taken for Length cached For Loop :
<div id="atimer">Running Test...</div>
<br/>Result B :
<div id="bresult"></div>Time taken for Halved For Loop :
<div id="btimer">Running Test...</div>

CSS

#atimer, #btimer {
    color:green
}
;

JavaScript

var count1 = 0;
var count2 = 0;
var searchterm = "face";
var arrayLength = mainArray.length;

var timer1 = new Timer();
var timer2 = new Timer();

function testIterationA() {
    //Start of first iteration method
    for (var i = 0, len = arrayLength; i < len; i++) {
        if (mainArray[i].search(new RegExp(searchterm, "i")) > -1) {
            count1 += 1;
        }
    }
    jQuery("#aresult").html(count1);
    //End Of First Iteration Method
}

function testIterationB() {
    //Start of second method
    var firstHalfLen = 0;
    var secondHalfLen = 0;
    var halfLen = arrayLength / 2;
    if (arrayLength % 2 == halfLen) {
        firstHalfLen = Math.ceil(halfLen);
        secondHalfLen = Math.floor(halfLen);
    } else {
        firstHalfLen = halfLen;
        secondHalfLen = halfLen;
    }
    for (var firstHalfCOunter = 0, secondHalfCounter = arrayLength - secondHalfLen; firstHalfCOunter < firstHalfLen; firstHalfCOunter++) {
        if (mainArray[firstHalfCOunter].search(new RegExp(searchterm, "i")) > -1) {
            count2 += 1;
        }
        if (secondHalfCounter < arrayLength) {
            if (mainArray[secondHalfCounter].search(new RegExp(searchterm, "i")) > -1) {
                count2 += 1;
            }
            secondHalfCounter++;
        }

    }
    jQuery("#bresult").html(count2);
    //End of second method
}

//Run after JSFiddle UI is up
setTimeout(function () {

    timer1.profile(testIterationA, 5)
    jQuery("#atimer").html(timer1.microseconds());

    timer2.profile(testIterationB, 5)
    jQuery("#btimer").html(timer2.microseconds());

}, 1000);