object in vs array some/w includes vs array some/w indexOf

Benchmark created on


Setup

for(let data=[],i=0;i<30000;i++){
	if (i%5 === 0) {
		data[i]={hoge:i+1};		
	} else {
		data[i]={uuid:i+1,major:i+1,minor:i+1};
	}
};
const strData=JSON.stringify(data)

Test runner

Ready to run.

Testing in
TestOps/sec
object in
const datas=JSON.parse(strData);
const keys = ['uuid', 'major', 'minor'];
let conts = 0;
for (const data of datas) {
	for (const key of keys) {
		if (!(key in data)) {
			count++;
		}
	}
}
ready
array some/w includes
const datas=JSON.parse(strData);
const keys = ['uuid', 'major', 'minor'];
let conts = 0;
for (const data of datas) {
	const dataKeys = Object.keys(data);
	if (dataKeys.some(k=> keys.includes(k))) {
		count++;
	}
}
ready
array some/w indexOf
const datas=JSON.parse(strData);
const keys = ['uuid', 'major', 'minor'];
let conts = 0;
for (const data of datas) {
	const dataKeys = Object.keys(data);
	if (dataKeys.some(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.