Files
30-seconds-of-code/snippets/checkProp.md
2019-03-17 08:09:25 -07:00

870 B

checkProp

Given a predicate function and a prop string this curried function will then take an object to inspect by calling the property and passing it to the predicate.

It summons prop on obj and passes it to a provided predicate function and returns a masked boolean

const checkProp = (predicate, prop) => obj => !!predicate(obj[prop])
const lengthIs4 = checkProp(l => l === 4, 'length')
lengthIs4([]) // false
lengthIs4([1,2,3,4]) // true
lengthIs4(new Set([1,2,3,4])) // false (Set uses Size, not length)

const session = { user: {} }
const validUserSession = checkProps(u => u.active && !u.disabled, 'user')

validUserSession(session) // false

session.user.active = true
validUserSession(session) // true

const noLength(l => l === undefined, 'length')
noLength([]) // false
noLength({}) // true
noLength(new Set()) // true