HTML Preparation code:
x
 
1
<html>
2
    <head>
3
        <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
4
        <script>
5
        underscore = _;
6
        </script>
7
8
9
        <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.12.0/lodash.min.js"></script>
10
11
        <script>
12
        lodash = _;
13
        </script>
14
    </head>
15
    <body>
16
    </body>
17
</html>
18
Script Preparation code:
 
var PromosArray = [
    {
        type: "regular",
        display: "$123.00"
    },
    {
        type: "markdown",
        display: "$100.00"
    },
    {
        type: "promo",
        display: "$80.00"
    }
];
var PromosObject = {
    regular: "$123.00",
    markdown: "$100.00",
    promo: "$80.00"
};
function contains(array, type) {
    for (var i = 0; i < array.length; i++) {
        if (array[i]["type"] === type) {
            return true;
        }
    }
    return false;
}
function testArrayContains() {
  contains(PromosArray, "regular");
  contains(PromosArray, "markdown");
  contains(PromosArray, "promo");
}
  
function testObjectContains() {
    if (PromosObject.regular) {
        // skip display logic
    }
    if (PromosObject.markdown) {
        // skip display logic
    }
    if (PromosObject.promo) {
        // skip display logic
    }
}
function testUnderscoreContains() {
    underscore.some(PromosArray, "type", "regular");
    underscore.some(PromosArray, "type", "markdown");
    underscore.some(PromosArray, "type", "promo");
}
function testLodashContains() {
    lodash.some(PromosArray, "type", "regular");
    lodash.some(PromosArray, "type", "markdown");
    lodash.some(PromosArray, "type", "promo");
}
Tests:
  • testArrayContains

     
    testArrayContains();
  • testObjectContains

     
    testObjectContains();
  • testUnderscoreContains

     
    testUnderscoreContains();
  • testLodashContains

     
    testLodashContains();
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    testArrayContains
    testObjectContains
    testUnderscoreContains
    testLodashContains

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 6 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36
Chrome 68 on Mac OS X 10.13.5
View result in a separate tab
Test name Executions per second
testArrayContains 2071636.6 Ops/sec
testObjectContains 3708594.2 Ops/sec
testUnderscoreContains 956350.6 Ops/sec
testLodashContains 796952.7 Ops/sec