Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
test for of and flatMap
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
Browser:
Chrome 125
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
flatmap
852.2 Ops/sec
for of
1674.9 Ops/sec
Script Preparation code:
function generateMockTeamsWithData(records) { const mockData = []; for (let i = 0; i < records; i++) { const team = { teamName: `Team ${i}`, channels: [] }; // Generate a random number of channels per team (1 to 5) const channelCount = Math.floor(Math.random() * 5) + 1; for (let j = 0; j < channelCount; j++) { const channel = { channelName: `Channel ${j}`, messages: [] }; // Generate a random number of messages per channel (1 to 10) const messageCount = Math.floor(Math.random() * 10) + 1; for (let k = 0; k < messageCount; k++) { const message = { positiveMessageCount: Math.floor(Math.random() * 5), negativeMessageCount: Math.floor(Math.random() * 5), neutralMessageCount: Math.floor(Math.random() * 5), user: { id: `user${Math.floor(Math.random() * 1000)}` } }; channel.messages.push(message); } team.channels.push(channel); } mockData.push(team); } return mockData; } // Usage var teamsWithData = generateMockTeamsWithData(1000);
Tests:
flatmap
function testFlatMap(teams) { const flatMessages = teams.flatMap((team) => team.channels.flatMap((channel) => channel.messages)); let totalPositiveCount = 0; let totalNegativeCount = 0; let totalNeutralCount = 0; const uniqueUserIds = new Set(); for (const message of flatMessages) { totalPositiveCount += message.positiveMessageCount; totalNegativeCount += message.negativeMessageCount; totalNeutralCount += message.neutralMessageCount; uniqueUserIds.add(message.user.id ?? ''); } return { totalPositiveCount, totalNegativeCount, totalNeutralCount, uniqueUserCount: uniqueUserIds.size }; } const result = testFlatMap(teamsWithData);
for of
// Test function function testForOfLoop(teams) { let totalPositiveCount = 0; let totalNegativeCount = 0; let totalNeutralCount = 0; const uniqueUserIds = new Set(); for (const team of teams) { for (const channel of team.channels) { for (const message of channel.messages) { totalPositiveCount += message.positiveMessageCount; totalNegativeCount += message.negativeMessageCount; totalNeutralCount += message.neutralMessageCount; uniqueUserIds.add(message.user.id ?? ''); } } } return { totalPositiveCount, totalNegativeCount, totalNeutralCount, uniqueUserCount: uniqueUserIds.size }; } const result2 = testForOfLoop(teamsWithData);