includes vs for in vs object.keys

Benchmark publishedon

Setup


// 1, 2
let phones_user = {
"12312312":192,
"12345234":200,
"12312312":192,
"1231231":192,
"1231232":192,
"1231212":192,
"1231312":192,
"1232312":192,
"1212312":192,
"1312312":192,
"2312312":192,
"123123":192,
"123112":192,
"122312":192,
"312312":192,
"123312":192,
"123232":192,
}
// 3
let phones = ['122312', '123112', '123123', '123232', '123312', '312312', '1212312', '1231212', '1231231', '1231232', '1231312', '1232312', '1312312', '2312312', '12312312', '12345234']
let user_phones = {
	192: ['122312', '123112', '123123', '123232', '123312', '312312', '1212312', '1231212', '1231231'],
	200: [ '1231232', '1231312', '1232312', '1312312', '2312312', '12312312', '12345234']
}

Test Runner

Initializing...

Testing in
Test CaseOps/sec
keys includes
// found
if(Object.keys(phones_user).includes("123112")){
	let user = phones_user["123112"]
};

// not found
if(Object.keys(phones_user).includes("1235122")){
	let user = phones_user["1235122"]
};


ready
for in
// found
for (const k in phones_user) {
	if(k == "123112"){
		let user = phones_user[k]
		break;
	}
}
// not found
for (const k in phones_user) {
	if(k == "1233333"){
		let user = phones_user[k]
		break;
	}
}
ready
array + object for in
// found
if(phones.includes('123112')){
	for (const u in user_phones) {
		if(user_phones[u].includes('123112')){
			let user = u
		}
	}
}
// not found
if(phones.includes('1233333')){
	for (const u in user_phones) {
		if(user_phones[u].includes('1233333')){
			let user = u
		}
	}
}
ready
array + object
// found
if(phones.includes('123112')){
	let user = phones_user['123112']
}
// not found
if(phones.includes('1233333')){
	let user = phones_user['1233333']
}
ready

Revisions

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

Revision 1
publishedon
Revision 2
publishedon
Revision 3
publishedon