Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Find vs Set
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
Browser:
Chrome 140
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
7 months ago
Test name
Executions per second
.find
34125632.0 Ops/sec
Map
19357894.0 Ops/sec
Map 2
19900972.0 Ops/sec
HTML Preparation code:
<!--your preparation HTML code goes here-->
Script Preparation code:
const variantSummary = [ { id: "__BARCODE_ONE__", sku: "__BARCODE_ONE__", barcode: "__BARCODE_ONE__", media: [ { url: "__IMAGE_ONE_URL__", mediaContentType: "IMAGE", }, ], price: { amount: { amount: 1, amountFormatted: "$1", currencyCode: "AUD", }, priceDisplayType: "STANDARD", }, colour: { id: "1", name: "__COLOUR_ONE__", swatch: null, media: [ { url: "__IMAGE_ONE_URL__", mediaContentType: "IMAGE", }, ], }, size: { id: "1", value: "__SIZE_ONE__", }, available: true, stock: 100, }, { id: "__BARCODE_TWO__", sku: "__BARCODE_TWO__", barcode: "__BARCODE_TWO__", media: [ { url: "__IMAGE_TWO_URL__", mediaContentType: "IMAGE", }, ], price: { amount: { amount: 1, amountFormatted: "$1", currencyCode: "AUD", }, priceDisplayType: "STANDARD", }, colour: { id: "2", name: "__COLOUR_TWO__", media: [ { url: "__IMAGE_TWO_URL__", mediaContentType: "IMAGE", }, ], swatch: { url: "__COLOUR_TWO_SWATCH_URL__", mediaContentType: "IMAGE", }, }, size: { id: "1", value: "__SIZE_ONE__", }, available: true, stock: 100, }, { id: "__BARCODE_THREE__", sku: "__BARCODE_THREE__", barcode: "__BARCODE_THREE__", media: [ { url: "__IMAGE_TWO_URL__", mediaContentType: "IMAGE", }, ], price: { amount: { amount: 1, amountFormatted: "$1", currencyCode: "AUD", }, priceDisplayType: "STANDARD", }, colour: { id: "2", name: "__COLOUR_TWO__", media: [ { url: "__IMAGE_TWO_URL__", mediaContentType: "IMAGE", }, ], swatch: { url: "__COLOUR_TWO_SWATCH_URL__", mediaContentType: "IMAGE", }, }, size: { id: "2", value: "__SIZE_TWO__", }, available: true, stock: 100, }, { id: "__BARCODE_FOUR__", sku: "__BARCODE_FOUR__", barcode: "__BARCODE_FOUR__", media: [ { url: "__IMAGE_TWO_URL__", mediaContentType: "IMAGE", }, ], price: { amount: { amount: 1, amountFormatted: "$1", currencyCode: "AUD", }, priceDisplayType: "STANDARD", }, size: { id: "2", value: "__SIZE_TWO__", }, available: true, stock: 100, }, ]; const aggregateSizesByFind = variants => variants.reduce((acc, { size }) => { if (size && !acc.some((accItem) => accItem.value === size.value)) { acc.push(size); } return acc; }, []); const aggregateSizesByMap = variants => Array.from( variants .reduce((acc, { size }) => { if (size) { acc.set(size.id, size); } return acc; }, new Map()) .values() ); const aggregateSizesByMap2 = variants => { const sizeMap = new Map(); for (const { size } of variants) { if (size) { sizeMap.set(size.id, size); } } return Array.from(sizeMap.values()); }; const aggregateSizes3 = variants => variants .map((variant) => variant.size) .filter((size, index, sizes) => sizes.indexOf(size) === index) .filter((size) => !!size);
Tests:
.find
const sizes = aggregateSizesByFind(variantSummary);
Map
const sizes = aggregateSizesByMap(variantSummary);
Map 2
const sizes = aggregateSizesByMap2(variantSummary);
.map.filter
const sizes = aggregateSizesByMap2(variantSummary);