.entries, for of, and .forEach (v5)

Revision 5 of this benchmark created on


Setup

const obj = {}
for (let i = 0; i < 10; ++i) {
	obj[i] = i + 2
}
let sum = 0

Teardown

console.log(sum);
sum = 0;

Test runner

Ready to run.

Testing in
TestOps/sec
Object.entries().forEach() summation
Object.entries(obj).forEach(([key,value]) => {
	if(key%2) sum += value
})
ready
for in loop
for (const key in obj) {
	if(key%2) sum += obj[key]
}
ready
Object.keys().forEach() summation
Object.keys(obj).forEach((key) => {
	if(key%2) sum += obj[key]
})
ready
for of loop Object.keys()
for (const key of Object.keys(obj)) {
	if(key%2) sum += obj[key]
}
ready
for of loop Object.entries()
for (const [key, val] of Object.entries(obj)) {
	if(key%2) sum += val
}
ready
Object.keys().reduce() summation
sum = Object.keys(obj).reduce((sum, key) => {
	return key % 2 ? sum + obj[key] : sum
}, 0)
ready

Revisions

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