Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
javascript case insensitive compare with -1 0 1 for sorting
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/135.0.0.0 Safari/537.36
Browser:
Chrome 135
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
built-in sort (CASE SENSITIVE)
2961.3 Ops/sec
localeCompare base sort
14.1 Ops/sec
toLowerCase simple sort
1063.8 Ops/sec
toLowerCase with manual compare sort
1074.2 Ops/sec
manual ascii compare sort
2044.3 Ops/sec
HTML Preparation code:
<!--your preparation HTML code goes here-->
Script Preparation code:
function generateRandomString(length) { const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let result = ''; const charactersLength = characters.length; for (let i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } function generateData(numStrings) { const stringArray = []; const minLength = 3; const maxLength = 20; for (let i = 0; i < numStrings; i += 1) { stringArray.push(generateRandomString(minLength + Math.floor(Math.random() * (maxLength - minLength)))); } return stringArray; } const initialData = generateData(1000);
Tests:
built-in sort (CASE SENSITIVE)
const data = initialData.slice(); data.sort();
localeCompare base sort
const data = initialData.slice(); data.sort((l, r) => (l || '').localeCompare((r || ''), undefined, {sensitivity: 'base'}));
toLowerCase simple sort
const data = initialData.slice(); data.sort((a, b) => { a = a.toLowerCase(); b = b.toLowerCase(); if (a === b) { return 0; } else if (a < b) { return -1; } else { return 1; } });
toLowerCase with manual compare sort
const data = initialData.slice(); data.sort((a, b) => { a = a.toLowerCase(); b = b.toLowerCase(); for (let i = 0; i < a.length && i < b.length; i += 1) { if (a[i] !== b[i]) { if (a[i] < b[i]) { return -1; } else { return 1; } } } if (a.length == b.length) { return 0; } else if (a.length < b.length) { return -1; } else { return 1; } });
manual ascii compare sort
const data = initialData.slice(); data.sort((a, b) => { for (let i = 0; i < a.length && i < b.length; i += 1) { let l = a.charCodeAt(i); let r = b.charCodeAt(i); if (l >= 65 && l < 91) { l += 32; } if (r >= 65 && r < 91) { r += 32; } if (l !== r) { if (l < r) { return -1; } else { return 1; } } } if (a.length == b.length) { return 0; } else if (a.length < b.length) { return -1; } else { return 1; } });