expandStart
expandStart
(length: number, char: Character) => (aString: string) => string
Expand a string to
lengthby prependingcharconst expandTo3 = expandStart(3, '-') expandTo3('a') // is '--a' expandTo3('ab') // is '-ab' expandTo3('abc') // is 'abc'const expandTo3 = expandStart(3, '-') expandTo3('a') // is '--a' expandTo3('ab') // is '-ab' expandTo3('abc') // is 'abc'const expandTo3 = expandStart(3, '-') expandTo3('a') // is '--a' expandTo3('ab') // is '-ab' expandTo3('abc') // is 'abc'const expandTo3 = expandStart(3, '-') expandTo3('a') // is '--a' expandTo3('ab') // is '-ab' expandTo3('abc') // is 'abc'Sometimes we want a string to have a certain length. Below, we normalize file IDs so they sort as expected.
const profilePictureIds = [196, 22081, 352, 78] const addLeadingZeroes = expandStart(5, '0') const sortedFileNames = profilePictureIds .map(id => { const normalizedId = addLeadingZeroes(`${id}`) return `profile-picture-${normalizedId}.jpg` }) .toSorted() .join('\n') console.log(sortedFileNames) // is // profile-picture-00078.jpg // profile-picture-00196.jpg // profile-picture-00352.jpg // profile-picture-22081.jpgconst profilePictureIds = [196, 22081, 352, 78] const addLeadingZeroes = expandStart(5, '0') const sortedFileNames = profilePictureIds .map((id: number) => { const normalizedId = addLeadingZeroes(`${id}`) return `profile-picture-${normalizedId}.jpg` }) .toSorted() .join('\n') console.log(sortedFileNames) // is // profile-picture-00078.jpg // profile-picture-00196.jpg // profile-picture-00352.jpg // profile-picture-22081.jpgconst profilePictureIds = [196, 22081, 352, 78] const addLeadingZeroes = expandStart(5, '0') const sortedFileNames = profilePictureIds .map(id => { const normalizedId = addLeadingZeroes(`${id}`) return `profile-picture-${normalizedId}.jpg` }) .toSorted() .join('\n') console.log(sortedFileNames) // is // profile-picture-00078.jpg // profile-picture-00196.jpg // profile-picture-00352.jpg // profile-picture-22081.jpgconst profilePictureIds = [196, 22081, 352, 78] const addLeadingZeroes = expandStart(5, '0') const sortedFileNames = profilePictureIds .map((id: number) => { const normalizedId = addLeadingZeroes(`${id}`) return `profile-picture-${normalizedId}.jpg` }) .toSorted() .join('\n') console.log(sortedFileNames) // is // profile-picture-00078.jpg // profile-picture-00196.jpg // profile-picture-00352.jpg // profile-picture-22081.jpg