indexOf vs includes vs Set vs switch

Benchmark created on


Setup

const arr = [3,5,7,8,9,11,12,13,15,17,20,22,25,27];
const set = new Set(arr);
function switch1(i){
	switch(i){
		case 3:
		case 5:
		case 7:
		case 8:
		case 9: case 11: case 12: case 13: case 15: case 17: case 20: case 22: case 25: case 27: return true;
		case 0: case 1: case 2: case 6: case 10: case 14: case 16: case 18: case 19: case 21: case 23: case 24: case 26: return false;
	}
}
function switch2(i){
	switch(i){
		case 3:case 5:case 7:case 8: case 9: case 11: case 12: case 13: case 15: case 17: case 20: case 22: case 25: case 27: return true;
		default: return false;
	}
}

Test runner

Ready to run.

Testing in
TestOps/sec
includes
for (let i=0;i<28;i++)
	arr.includes(i)
ready
indexOf
for (let i=0;i<28;i++)
	arr.indexOf(i) >= 0
ready
set
for (let i=0;i<28;i++)
	set.has(i)
ready
switch1
for (let i=0;i<28;i++)
	switch1(i)
ready
switch2
for (let i=0;i<28;i++)
	switch2(i)
ready

Revisions

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