Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
uniq objects array
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Safari/605.1.15
Browser:
Safari 18
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Set and ForOf
6114.2 Ops/sec
Map
4731.9 Ops/sec
Script Preparation code:
function generateRandomObjects(count) { const getRandomString = (length = 5) => Math.random().toString(36).substring(2, 2 + length); return Array.from({ length: count }, () => ({ item: getRandomString(), descr: getRandomString(), })); } // Пример использования: const randomObjects = generateRandomObjects(3000); console.log(randomObjects);
Tests:
Set and ForOf
const uniqItems = new Set(); const items = []; for (const element of randomObjects) { const key = `${element.item} - ${element.descr}`; if (!uniqItems.has(key)) { items.push(element); uniqItems.add(key); } }
Map
const items = Array.from( new Map( randomObjects.map(i => [`${i.item} - ${i.descr}`, { item: i.item, descr: i.descr }]) ).values() );