object in vs array some/w includes vs array some/w indexOf (v3)

Revision 3 of this benchmark created on


Setup

const datas = [];
for(let i=0; i<300000; i++){
	if (i % 5 === 0) {
		datas[i] = { hoge: i+1 };		
	} else {
		datas[i] = { uuid: i+1, major: i+1, minor: i+1 };
	}
};
const keys = ['uuid', 'major', 'minor'];

Test runner

Ready to run.

Testing in
TestOps/sec
object in
let count = 0;
for (const data of datas) {
	for (const key of keys) {
		if (!(key in data)) {
			count++;
			break;
		}
	}
}
ready
array some/w includes
let count = 0;
for (const data of datas) {
	const dataKeys = Object.keys(data);
	if (dataKeys.every(k => keys.includes(k))) {
		count++;
	}
}
ready
array some/w indexOf
const keys = ['uuid', 'major', 'minor'];
let count = 0;
for (const data of datas) {
	const dataKeys = Object.keys(data);
	if (dataKeys.every(k => keys.indexOf(k) !== -1)) {
		count++;
	}
}
ready

Revisions

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