Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
titlepipe test
(version: 0)
Comparing performance of:
transformOld vs transformNew vs transformWithoutFlow
Created:
5 years ago
by:
Guest
Jump to the latest result
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
function transformOld(value) { return value // remove d_, dt_ case insensitive .replace(/(^dt?_)/i, '') // remove jn_ case insensitive .replace(/(^jn_)/i, '') // insert a space between lower & upper and correct case .replace( /([a-z])(_?)([A-Z])(.)/g, (match, endOfLower, underscorePrefix, firstUpperCaseCharacter, secondCharacter) => { if (!underscorePrefix && secondCharacter !== secondCharacter.toUpperCase()) { firstUpperCaseCharacter = firstUpperCaseCharacter.toLowerCase(); } return `${endOfLower} ${firstUpperCaseCharacter}${secondCharacter}`; } ) // remove all _ .replace(/_+/g, ' ') // space before last upper in a sequence followed by lower .replace(/([A-Z]+)([A-Z])/g, (match, beforeLastUpper, lastUpper) => `${beforeLastUpper} ${lastUpper.toLowerCase()}`) // uppercase the first character .replace(/^./, (str) => str.toUpperCase()) } function transformNew(value) { return _.flow( removePrefixes, splitLowerUpperCaseAndFixCase, splitUnderscore, splitAllUpperLowerCase, upperCaseFirstCharacter )(value); } function removePrefixes(value) { return value.replace(/(^dt?_|^jn_)/i, ''); } function splitLowerUpperCaseAndFixCase(value) { return value.replace( /([a-z])(_?)([A-Z])(.)/g, (match, endOfLower, underscorePrefix, firstUpperCaseCharacter, secondCharacter) => { if (!underscorePrefix && secondCharacter !== secondCharacter.toUpperCase()) { firstUpperCaseCharacter = firstUpperCaseCharacter.toLowerCase(); } return `${endOfLower} ${firstUpperCaseCharacter}${secondCharacter}`; } ); } function splitUnderscore(value) { return value.replace(/_+/g, ' '); } function splitAllUpperLowerCase(value) { return value.replace( /([A-Z]+)([A-Z])/g, (match, beforeLastUpper, lastUpper) => `${beforeLastUpper} ${lastUpper.toLowerCase()}` ); } function upperCaseFirstCharacter(value) { return value.replace(/^./, (str) => str.toUpperCase()); } function transformWithoutFlow(value) { return upperCaseFirstCharacter(splitAllUpperLowerCase(splitUnderscore(splitLowerUpperCaseAndFixCase(removePrefixes(value))))); } var testString = 'abcdefHij_Klm';
Tests:
transformOld
transformOld(testString);
transformNew
transformNew(testString);
transformWithoutFlow
transformWithoutFlow(testString);
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (3)
Previous results
Fork
Test case name
Result
transformOld
transformNew
transformWithoutFlow
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Related benchmarks:
titlepipemergedprefixremovalw
Uppercase
Test Replace vs Split
regex vs javascript camelCase long
Comments
Confirm delete:
Do you really want to delete benchmark?