reduce-for-loop

Benchmark created on


Setup

const dates = [];
for (const count of [...Array(1000000).keys()]) {
	const date = new Date();
	date.setHours(count);
	dates.push({
		id: count,
		date: date,
	});
}

Test runner

Ready to run.

Testing in
TestOps/sec
for-loop
const result = {};
for (const date of dates) {
    const dateStr = date.date.toISOString().slice(0, 10);
    if (result[dateStr]) {
      result[dateStr].push(date);
    } else {
      result[dateStr] = [date];
    }
  }
ready
reduce
const result = dates.reduce((dateMap, currentDate) => {
      const dateStr = currentDate.date.toISOString().slice(0, 10);
      if (!dateMap[dateStr]) {
        dateMap[dateStr] = [];
      }
      dateMap[dateStr].push(currentDate);
      return dateMap;
    }, {});
ready

Revisions

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