18 lines
558 B
Markdown
18 lines
558 B
Markdown
---
|
|
title: coalesceFactory
|
|
tags: type,intermediate
|
|
---
|
|
|
|
Returns a customized coalesce function that returns the first argument that returns `true` from the provided argument validation function.
|
|
|
|
- Use `Array.prototype.find()` to return the first argument that returns `true` from the provided argument validation function.
|
|
|
|
```js
|
|
const coalesceFactory = valid => (...args) => args.find(valid);
|
|
```
|
|
|
|
```js
|
|
const customCoalesce = coalesceFactory(_ => ![null, undefined, '', NaN].includes(_));
|
|
customCoalesce(undefined, null, NaN, '', 'Waldo'); // "Waldo"
|
|
```
|