startsWith

startsWith

  • (prefix: string) => (aString: string) => boolean
  1. Test if one string starts with another

    const startsWithAB = startsWith('ab')
    
    startsWithAB('abcd') // is true
    startsWithAB('cdab') // is false
    const startsWithAB = startsWith('ab')
    
    startsWithAB('abcd') // is true
    startsWithAB('cdab') // is false
    
    const startsWithAB = startsWith('ab')
    
    startsWithAB('abcd') // is true
    startsWithAB('cdab') // is false
    const startsWithAB = startsWith('ab')
    
    startsWithAB('abcd') // is true
    startsWithAB('cdab') // is false
    
  2. Sometimes we want to see if a string starts with another. Below, someone turned in a lost notebook with only a first name, 'Chris.'. Let's find which classes have a Chris.

    const classrooms = {
      A: ['ken roberts', 'chris reyes', 'liz brown'],
      B: ['phil smith', 'mary garcia', 'sarah miller'],
      C: ['matt davis', 'chris taylor', 'amy moore'],
    }
    
    const startsWithChris = startsWith('chris ')
    const roomHasChris = any(startsWithChris)
    const getRoomsWithChris = compose([keepWhen(roomHasChris), Object.keys])
    
    const roomsToCheck = getRoomsWithChris(classrooms)
    console.log(roomsToCheck) // is [A, C]
    type Classrooms = Record<string, string[]>
    const classrooms: Classrooms = {
      A: ['ken roberts', 'chris reyes', 'liz brown'],
      B: ['phil smith', 'mary garcia', 'sarah miller'],
      C: ['matt davis', 'chris taylor', 'amy moore'],
    }
    
    const startsWithChris = startsWith('chris ')
    const roomHasChris = any(startsWithChris)<string[]>
    const getRoomsWithChris = compose([
      keepWhen(roomHasChris)<Classrooms>,
      Object.keys,
    ])
    
    const roomsToCheck = getRoomsWithChris(classrooms)
    console.log(roomsToCheck) // is [A, C]
    
    const classrooms = {
      A: ['ken roberts', 'chris reyes', 'liz brown'],
      B: [
        'phil smith',
        'mary garcia',
        'sarah miller',
      ],
      C: ['matt davis', 'chris taylor', 'amy moore'],
    }
    
    const startsWithChris = startsWith('chris ')
    const roomHasChris = any(startsWithChris)
    const getRoomsWithChris = compose([
      keepWhen(roomHasChris),
      Object.keys,
    ])
    
    const roomsToCheck = getRoomsWithChris(classrooms)
    console.log(roomsToCheck) // is [A, C]
    type Classrooms = Record<string, string[]>
    const classrooms: Classrooms = {
      A: ['ken roberts', 'chris reyes', 'liz brown'],
      B: [
        'phil smith',
        'mary garcia',
        'sarah miller',
      ],
      C: ['matt davis', 'chris taylor', 'amy moore'],
    }
    
    const startsWithChris = startsWith('chris ')
    const roomHasChris = any(startsWithChris)<
      string[]
    >
    const getRoomsWithChris = compose([
      keepWhen(roomHasChris)<Classrooms>,
      Object.keys,
    ])
    
    const roomsToCheck = getRoomsWithChris(classrooms)
    console.log(roomsToCheck) // is [A, C]