endsWith
endsWith
(suffix: string) => (aString: string) => boolean
Test if one string ends with another
const endsWithCD = endsWith('cd') endsWithCD('abcd') // is true endsWithCD('cdab') // is false
const endsWithCD = endsWith('cd') endsWithCD('abcd') // is true endsWithCD('cdab') // is false
const endsWithCD = endsWith('cd') endsWithCD('abcd') // is true endsWithCD('cdab') // is false
const endsWithCD = endsWith('cd') endsWithCD('abcd') // is true endsWithCD('cdab') // is false
Sometimes we want to see if a string ends with another. Below, someone turned in a lost notebook with only the last name printed, 'Davis.' Let's find which classes have a Davis.
const classrooms = { A: ['phil smith', 'mary garcia', 'sarah miller'], B: ['matt davis', 'jason taylor', 'amy moore'], C: ['kim white', 'grace walker', 'sam davis'], } const endsWithDavis = endsWith(' davis') const roomHasDavis = any(endsWithDavis) const getRoomsWithDavis = compose([keepWhen(roomHasDavis), Object.keys]) const roomsToCheck = getRoomsWithDavis(classrooms) console.log(roomsToCheck) // is [B, C]
type Classrooms = Record<string, string[]> const classrooms: Classrooms = { A: ['phil smith', 'mary garcia', 'sarah miller'], B: ['matt davis', 'jason taylor', 'amy moore'], C: ['kim white', 'grace walker', 'sam davis'], } const endsWithDavis = endsWith(' davis') const roomHasDavis = any(endsWithDavis)<string[]> const getRoomsWithDavis = compose([ keepWhen(roomHasDavis)<Classrooms>, Object.keys, ]) const roomsToCheck = getRoomsWithDavis(classrooms) console.log(roomsToCheck) // is [B, C]
const classrooms = { A: [ 'phil smith', 'mary garcia', 'sarah miller', ], B: ['matt davis', 'jason taylor', 'amy moore'], C: ['kim white', 'grace walker', 'sam davis'], } const endsWithDavis = endsWith(' davis') const roomHasDavis = any(endsWithDavis) const getRoomsWithDavis = compose([ keepWhen(roomHasDavis), Object.keys, ]) const roomsToCheck = getRoomsWithDavis(classrooms) console.log(roomsToCheck) // is [B, C]
type Classrooms = Record<string, string[]> const classrooms: Classrooms = { A: [ 'phil smith', 'mary garcia', 'sarah miller', ], B: ['matt davis', 'jason taylor', 'amy moore'], C: ['kim white', 'grace walker', 'sam davis'], } const endsWithDavis = endsWith(' davis') const roomHasDavis = any(endsWithDavis)<string[]> const getRoomsWithDavis = compose([ keepWhen(roomHasDavis)<Classrooms>, Object.keys, ]) const roomsToCheck = getRoomsWithDavis(classrooms) console.log(roomsToCheck) // is [B, C]