Skip to main content

Find an Object in an Array by Key and Value

// Find an object in an array by a key and value.

export const createFindBy =
<Obj extends Record<string, unknown>>(key: keyof Obj) =>
(value: unknown) =>
(obj: Obj): boolean => {
if (!Object.hasOwn(obj, key))
throw new Error(`Key "${String(key)}" does not exist in the object.`)

return obj[key] === value
}

export const findById = createFindBy('id')
export const findByName = createFindBy('name')