_.contains vs .includes

Benchmark created on


Preparation HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.6/underscore-min.js"></script>

Setup

const values = [];
for (let i = 0; i < 500; i++) {
  values.push(i);
  values.push('string_' + i);
  values.push(i % 2 === 0);
}

const existingNumber = 250;
const existingString = 'string_100';
const existingBoolean = true;
const missingNumber = 9999;
const missingString = 'not_in_array';

// Rotate through different search values to test various scenarios
const searchTargets = [existingNumber, existingString, existingBoolean, missingNumber, missingString];
let currentIndex = 0;
let searchValue = searchTargets[currentIndex]

Teardown

currentIndex = (currentIndex + 1) % searchTargets.length;
searchValue = searchTargets[currentIndex];

Test runner

Ready to run.

Testing in
TestOps/sec
_.contains
_.contains(values, searchValue);
ready
.includes
values.includes(searchValue);
ready

Revisions

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