expandStart

expandStart

  • (length: number, char: Character) => (aString: string) => string
  1. Expand a string to length by prepending char

    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'
    const expandTo3 = expandStart(3, '-')
    
    expandTo3('a') // is '--a'
    expandTo3('ab') // is '-ab'
    expandTo3('abc') // is 'abc'
    
  2. 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.jpg
    const 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
    
    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.jpg
    const 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