map inside map

Benchmark created on


Setup

function fastmap(data, fn) {
	if (data.length === 0) {
		return []
	} else {
		let output = new Array(data.length)
		for (let i = 0; i < data.length; i++) {
			output[i] = fn(data[i])
		}
		return output
	}
}

let data = new Array(10)
for (let i = 0; i < data.length; i++) {
	let inner = new Array(i)
	for (let j = 0; j < inner.length; j++) {
		inner[j] = j
	}
	data[i] = inner
}

function numberEl(n) {
	return { 
		type: 'div', 
		children: ['item' + n]
	}	
}

Test runner

Ready to run.

Testing in
TestOps/sec
nested map closure
let output = data.map(numbers => ({ 
	type: 'div', 
	children: numbers.map(n => numberEl(n))
}))
ready
fastmap no closure
function listEl(numbers) {
	return {
		type: 'div',
		children: fastmap(numbers, numberEl)
	}
}

let output = fastmap(data, listEl)
ready

Revisions

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