numberIsBetween
numberIsBetween
(num1: number, num2: number, opts?: Options) => (aNumber: number) => boolean
Test if a number is between two others. Inclusive by default.
const isOneToFive = numberIsBetween(1, 5) isOneToFive(1) // is true isOneToFive(5) // is true isOneToFive(6) // is false
const isOneToFive = numberIsBetween(1, 5) isOneToFive(1) // is true isOneToFive(5) // is true isOneToFive(6) // is false
const isOneToFive = numberIsBetween(1, 5) isOneToFive(1) // is true isOneToFive(5) // is true isOneToFive(6) // is false
const isOneToFive = numberIsBetween(1, 5) isOneToFive(1) // is true isOneToFive(5) // is true isOneToFive(6) // is false
We often want to see if a number falls within a range. Below, we see if Amy, Kim, and Grace get the teen discount at the movies.
const people = { amy: { age: 19, }, kim: { age: 13, }, grace: { age: 20, }, } const isTeen = compose([get('age'), numberIsBetween(13, 19)]) const applyTeenDiscount = person => ({ ...person, getsTeenDiscount: isTeen(person), }) const applyTeenDiscountToAll = mapValues(applyTeenDiscount) const updatedPeople = applyTeenDiscountToAll(people) console.log(updatedPeople) // is { // amy: { // age: 19, // getsTeenDiscount: true, // }, // kim: { // age: 13, // getsTeenDiscount: true, // }, // grace: { // age: 20, // getsTeenDiscount: false, // }, // }
type Person = { age: number getsTeenDiscount?: boolean } type People = Record<string, Person> const people: People = { amy: { age: 19, }, kim: { age: 13, }, grace: { age: 20, }, } const isTeen = compose([get('age')<Person>, numberIsBetween(13, 19)]) const applyTeenDiscount = (person: Person) => ({ ...person, getsTeenDiscount: isTeen(person), }) const applyTeenDiscountToAll = mapValues(applyTeenDiscount)<People> const updatedPeople = applyTeenDiscountToAll(people) console.log(updatedPeople) // is { // amy: { // age: 19, // getsTeenDiscount: true, // }, // kim: { // age: 13, // getsTeenDiscount: true, // }, // grace: { // age: 20, // getsTeenDiscount: false, // }, // }
const people = { amy: { age: 19, }, kim: { age: 13, }, grace: { age: 20, }, } const isTeen = compose([ get('age'), numberIsBetween(13, 19), ]) const applyTeenDiscount = person => ({ ...person, getsTeenDiscount: isTeen(person), }) const applyTeenDiscountToAll = mapValues( applyTeenDiscount ) const updatedPeople = applyTeenDiscountToAll(people) console.log(updatedPeople) // is { // amy: { // age: 19, // getsTeenDiscount: true, // }, // kim: { // age: 13, // getsTeenDiscount: true, // }, // grace: { // age: 20, // getsTeenDiscount: false, // }, // }
type Person = { age: number getsTeenDiscount?: boolean } type People = Record<string, Person> const people: People = { amy: { age: 19, }, kim: { age: 13, }, grace: { age: 20, }, } const isTeen = compose([ get('age')<Person>, numberIsBetween(13, 19), ]) const applyTeenDiscount = (person: Person) => ({ ...person, getsTeenDiscount: isTeen(person), }) const applyTeenDiscountToAll = mapValues( applyTeenDiscount )<People> const updatedPeople = applyTeenDiscountToAll(people) console.log(updatedPeople) // is { // amy: { // age: 19, // getsTeenDiscount: true, // }, // kim: { // age: 13, // getsTeenDiscount: true, // }, // grace: { // age: 20, // getsTeenDiscount: false, // }, // }